Я создаю приложение для Android для запуска моего кода в фоновом режиме. Мне хорошо известно об ограничении, введенном Android Oreo для фоновых служб, и поэтому я использую WorkManager API, чтобы запланировать выполнение задачи. Я тестирую свой код на устройстве Mi Max с Android API 24 (Nougat), а также включаю автоматический запуск вручную, чтобы 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;
}
Подробнее здесь: https://stackoverflow.com/questions/509 ... orkrequest