コードをバックグラウンドで実行する Android アプリケーションを作成しています。Android Oreo によってバックグラウンド サービスに導入された制限についてはよく理解しています。そのため、WorkManager API を使用してタスクの実行をスケジュールしています。Android API 24 (Nougat) を使用して Mi Max デバイスでコードをテストしており、自動起動を手動で有効にして、MIUI がアプリをバックグラウンドで実行できるようにしていますが、問題は、WorkManager がアプリケーションの起動時に初めて起動することです。その後、それは機能しません。以下は、定期的な作業要求と作業自体に使用している私のコードです。
PeriodicWorkRequest 呼び出し:
PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(ClassExtendingWorker.class, 15, TimeUnit.MINUTES)
.setConstraints(Constraints.NONE)
.build();
WorkManager.getInstance().enqueue(work);
ClassExtendingWorker:
public Result doWork() {
/*--- SHOWING NOTIFICATION AS AN EXAMPLE TASK TO BE EXECUTED ---*/
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(), "")
.setSmallIcon(R.drawable.common_google_signin_btn_icon_light)
.setContentTitle("TestApp")
.setContentText("Code executed")
.setPriority(NotificationCompat.PRIORITY_DEFAULT);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
notificationManager.notify(1234, mBuilder.build());
return Result.SUCCESS;
}