1

指定された時間に同じ日に 1 回、その後のすべての日に 1 回タスクを実行する方法はありますか? デバイスの再起動後もスケジュールされたジョブを保持するため、 「 android-job 」というライブラリを使用しています。このライブラリを自分のユースケースでうまく機能させるのに苦労しています。

注: 最終的な目標は、毎日指定された時間にバックグラウンド サービスを開始および停止することです。たとえば、午後 8 時にサービスを停止し、午前 8 時に再開したいとします)。

現在、私のコードは次のようになります。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 0);

int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);

long startMs = TimeUnit.MINUTES.toMillis(60 - minute) + TimeUnit.HOURS.toMillis((24 - hour) % 24);
long endMs = startMs + TimeUnit.MINUTES.toMillis(5);


int jobId = new JobRequest.Builder(TAG)
        .setExecutionWindow(startMs, endMs)
        .setPersisted(true)
        .setUpdateCurrent(updateCurrent)
        .build()
        .schedule();`

コンソール出力:

jobInfo success, request{id=11, tag=job_demo_tag}, start 05:00:00, end 05:05:00, reschedule count 0
4

1 に答える 1