Android Kotlin:定期工作管理器未在后台定期运行该功能

问题描述

我正在使用 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 (将#修改为@)