WorkManager не работает, когда приложение закрыто / убито - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь выполнять простую работу каждые 10 секунд, используя WorkManager.Он отлично работает, когда приложение работает в фоновом режиме или на переднем плане.Когда я закрою приложение (закрою приложение), работа больше не будет вызываться.

Я вызываю приведенный ниже код при создании MainActivity

fun scheduleNotification(context: Context) {
    val workRequest = OneTimeWorkRequest.Builder(NotificationWorker::class.java).setInitialDelay(10000, TimeUnit.MILLISECONDS)
    WorkManager.getInstance().enqueueUniqueWork("NotificationWorker", ExistingWorkPolicy.REPLACE, workRequest.build())
    Log.d("NotificationWorker", "start")
}

Класс Worker

class NotificationWorker(context: Context, params: WorkerParameters) : Worker(context, params) {

override fun doWork(): Result {
    Log.d("NotificationWorker", "Working")
    NotificationUtil.scheduleNotification(applicationContext) // n times
    return Result.success()
}
}

Этот код хорошо работает, когда мое приложение не закрывается.

Как я могу заставить его работать, даже когда приложение было закрыто?

1 Ответ

0 голосов
/ 31 мая 2019

Я бы предложил вам использовать PeriodicWorkRequest для таких задач, которые нужно периодически выполнять.Проверьте детали здесь.

https://developer.android.com/topic/libraries/architecture/workmanager/how-to/recurring-work

...