Gol*_*ken 5 android android-wake-lock android-workmanager
我试图使用 WorkManager 每 10 秒运行一个简单的工作。当应用程序在后台或前台运行时,它可以完美运行。当我关闭应用程序(杀死应用程序)时,该工作将不再被调用。
我在创建 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")
}
Run Code Online (Sandbox Code Playgroud)
工人阶级
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()
}
}
Run Code Online (Sandbox Code Playgroud)
当我的应用程序未关闭时,这些代码运行良好。
即使应用程序关闭,我怎样才能让它运行?
小智 -3
我建议您对需要定期执行的任务使用PeriodicWorkRequest。请在此处查看详细信息。
https://developer.android.com/topic/libraries/architecture/workmanager/how-to/recurring-work