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です。Worker
doWork()