问题描述
我正在使用 Kotlin 和 Android Studio 构建一个 Android 应用。即使应用程序已死或完全关闭,我也试图运行后台任务。我正在使用工作管理器。但它似乎只运行了一次。
这是我的工人班。
import android.content.Context
import android.util.Log
import androidx.work.Worker
import androidx.work.WorkerParameters
class RegisterReceiversWorker(context: Context,workerParams: WorkerParameters): Worker(context,workerParams) {
companion object {
const val WORK_NAME: String = "REGISTER_RECEIVERS_WORKER"
}
override fun doWork(): Result {
registerReceivers()
return Result.success();
}
private fun registerReceivers() {
Log.i("REGISTER_RECEIVER","Greeting from the background")
}
}
正如您在代码中看到的,我正在 logcat 中打印一条消息。
然后我在第一次打开应用程序时在 MainActivity 中按如下方式启动工作程序。
val workRequest = PeriodicWorkRequestBuilder<RegisterReceiversWorker>(10,TimeUnit.SECONDS).build()
val workManager = WorkManager.getInstance(applicationContext)
workManager.enqueueUniquePeriodicWork(RegisterReceiversWorker.WORK_NAME,ExistingPeriodicWorkPolicy.REPLACE,workRequest);
如您所见,它应该每十秒打印一次消息。但是当我运行该应用程序时,它会在 logcat 中打印出消息,仅一次。我的代码有什么问题?即使应用程序关闭,我如何确保它在后台每 10 秒运行一次?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)