嗨我有一個全屏應用程序; 首先 我想例如。 6pm隱藏所有的主題,然後再顯示一個特定的時間,每天重複它。只是它的調用取決於設備的時間?從每天的時間調用方法
第二個是我想每15分鐘發送狀態和GPS信息,我有一個方法,但我怎麼能每15分鐘發送一次?
嗨我有一個全屏應用程序; 首先 我想例如。 6pm隱藏所有的主題,然後再顯示一個特定的時間,每天重複它。只是它的調用取決於設備的時間?從每天的時間調用方法
第二個是我想每15分鐘發送狀態和GPS信息,我有一個方法,但我怎麼能每15分鐘發送一次?
要安排一個循環任務,您可以使用Timer和TimerTask。
見http://developer.android.com/reference/java/util/Timer.html
EG。對於你的第二個問題,做一些事情,每15分鐘從現在做起:
long INTERVAL_MSEC = 900000;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
sendStatusAndGPS();
}
}
timer.scheduleAtFixedRate(task, 0, INTERVAL_MSEC);
關於第一個問題,你可以通過而非起始時間作爲第二個參數timer.scheduleAtFixedRate。
您也可以使用處理程序和postAtTime方法。
我發現timertask例子只有計時器,我希望它的時鐘時間。 例如。在下午6點可見虛假,每天早上9點可見。 – 2013-05-08 12:21:07
爲nitegazer2003說,你可以使用:
公共無效調度(TimerTask的任務,日期時,長週期);
,但如果你想開始重複計時器在一天中的特定時間,如果你想計時器,在6重複每天都可以做這樣的事情,你必須設置時可變, 例如:
// get today date
Date curent_time= new Date(System.currentTimeMillis());
Calendar cal = Calendar.getInstance();
cal.setTime(curent_time);
int hour = cal.get(Calendar.HOUR);
int min = cal.get(Calendar.MINUTE);
int sec = cal.get(Calendar.SECOND);
long when = (6 * 3600)
- ((hour*3600) + (min *60) + sec);
// interval should be based on miliseconds so
long interval = 24*60*60*1000;
timer.scheduleAtFixedRate(new testtimertask(), when, interval);
但是您需要考慮curent_time並未超出您的開始時間,如果是這樣,您應該使用另一個公式來計算何時啓動計時器。
嘗試使用警報管理器 – 3h3 2013-05-08 09:26:24
只是谷歌的alarmmanager,你會發現那裏的例子很多 – 2013-05-08 09:29:54