1

こんにちは、全画面表示のアプリがあります。まず私が欲しいです。午後 6 時にすべてのオブジェクトを非表示にし、毎日特定の時間に再び表示します。デバイス時間に基づいています。

次に、ステータスと GPS 情報を 15 分ごとに送信したいのですが、方法はありますが、15 分ごとに呼び出すにはどうすればよいですか?

4

3 に答える 3

1

定期的なタスクをスケジュールするには、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 を使用することもできます。

于 2013-05-08T09:32:46.473 に答える
0

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 が開始時刻を過ぎていないことを考慮する必要があります。その場合は、別の式を使用してタイマーをいつ開始するかを計算する必要があります。

于 2013-10-03T06:58:44.527 に答える