WorkManagerを利用しようとしていますが、PeriodicSyncが起動時に1回しか繰り返されないという問題が発生しているようですが、それだけです。
私はこの投稿を見ました WorkManagerのPeriodicWorkRequestは本当に誰かのために繰り返されていますか? しかしそこに答えはありません。最新のアルファビルド10も使用しています。
誰かが助けてくれるなら、それは大いにありがたいです。私はまだAndroidに慣れていませんが、これをプロジェクトで機能させる必要があります。必要なコードで使用しようとはしていませんが、単に正しく実行しようとしています。
10秒ごとに実行するように設定しました。10,000ミリ秒も試しましたが、どちらも機能せず、10秒後に何も起こりませんでした。
ログメッセージ「同期」は、Createで1回だけ表示され、それだけです。
私が抱えているもう1つの問題は、アプリを起動するたびに、ワーカーの数が増えているように見えることです。まるで、ワーカーが互いに積み重なっているかのようで、それが関連しているかどうかはわかりません。 私の他の問題への回答が見つかりました ここ しかし、私はまだ私の主要な問題について助けが必要です。
これが私のコードです:
労働者クラス
public class MyWorker2 extends Worker {
private static final String TAG = "BOOGABOOGA";
public MyWorker2(
@NonNull Context context,
@NonNull WorkerParameters params) {
super(context, params);
}
@Override
public Worker.Result doWork() {
// Do the work here--in this case, compress the stored images.
// In this example no parameters are passed; the task is
// assumed to be "compress the whole library."
Log.i(TAG, "Sync");
// Indicate success or failure with your return value:
return Result.SUCCESS;
}
}
主な活動
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PeriodicWorkRequest syncWork = new PeriodicWorkRequest.Builder(MyWorker2.class, 10, TimeUnit.SECONDS).build();
WorkManager.getInstance().enqueue(syncWork);
}
}
編集:これが機能しない理由は、タスクを繰り返すための最小間隔が、ここにある仕様に従って15分に設定されているためです: https://developer.Android.com/reference/androidx/work/PeriodicWorkRequest ==
これが機能しなかった理由は、タスクを繰り返すことができる最小時間間隔が15分に設定されているためです。クレジットは exshinigami に送られます。この仕様はここにあります: https://developer.Android.com/reference/androidx/work/PeriodicWorkRequest#min_periodic_interval_millis
15分後に実際に繰り返されることをテストして確認しました。