こんにちは、全画面表示のアプリがあります。まず私が欲しいです。午後 6 時にすべてのオブジェクトを非表示にし、毎日特定の時間に再び表示します。デバイス時間に基づいています。
次に、ステータスと GPS 情報を 15 分ごとに送信したいのですが、方法はありますが、15 分ごとに呼び出すにはどうすればよいですか?
定期的なタスクをスケジュールするには、TimerTask で Timer を使用できます。
http://developer.android.com/reference/java/util/Timer.htmlを参照してください。
例えば。2 番目の質問については、今から 15 分ごとに何かを行うには:
long INTERVAL_MSEC = 900000;
Timer timer = new Timer();
TimerTask task = new TimerTask() {
public void run() {
sendStatusAndGPS();
}
}
timer.scheduleAtFixedRate(task, 0, INTERVAL_MSEC);
最初の質問では、代わりに開始時刻を 2 番目のパラメーターとして timer.scheduleAtFixedRate に渡すことができます。
postAtTime メソッドで Handler を使用することもできます。
nitegazer2003 が使用できると言ったように:
public void schedule (TimerTask タスク、Date when、長期);
ただし、特定の時間に繰り返しタイマーを開始する場合は、変数を設定する必要があります。たとえば、タイマーを毎日 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);
ただし、 current_time が開始時刻を過ぎていないことを考慮する必要があります。その場合は、別の式を使用してタイマーをいつ開始するかを計算する必要があります。