16

Android Jetpackの新しい機能を適切に使用してWorkManager、1 日 1 回の定期的な作業をスケジュールする方法は?

アイデアは、指定されたタグを持つ作業が既に存在するかどうかを確認し、WorkManagerそうでない場合は新しい定期的な作業を開始することでした。

私は次のアプローチを使用してそれをやろうとしました:

public static final String CALL_INFO_WORKER = "Call worker";

...

WorkManager workManager = WorkManager.getInstance();
List<WorkStatus> value = workManager.getStatusesByTag(CALL_INFO_WORKER).getValue();
if (value == null) {
    WorkRequest callDataRequest = new PeriodicWorkRequest.Builder(CallInfoWorker.class,
                24, TimeUnit.HOURS, 3, TimeUnit.HOURS)
                .addTag(CALL_INFO_WORKER)
                .build();
    workManager.enqueue(callDataRequest);
}

しかし、のメソッド内にブレークポイントを置いて (したがって、確実に進行中です)、別のスレッドから作業ステータスを確認してvalueも、 は常に nullです。WorkerdoWork()

4

3 に答える 3