首先让我纠正一下:
Work Manager :可以定义的最小重复间隔为 15 分钟(与 JobScheduler API 相同)。 如果这不正确,请告诉我。
我创建了以下类来执行定期工作请求:
object WorkManagerUtils {
fun syncWorkManager() {
val myConstraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val syncRequest = PeriodicWorkRequest
.Builder(MyWorker::class.java, 20000, TimeUnit.MILLISECONDS)
.setConstraints(myConstraints)
.build()
WorkManager
.getInstance()
.enqueueUniquePeriodicWork(
Constants.WORKER,
ExistingPeriodicWorkPolicy.KEEP,
syncRequest)
}
}
下面是我的工人班。请检查 :
class MyWorker(val context: Context, param: WorkerParameters) : Worker(context, param) {
override fun doWork(): Result {
if (isNetworkAvailable(context)) {
callSyncApi()
} else {
WorkManagerUtils.syncWorkManager()
}
return Result.success()
}
private fun callSyncApi() {
ToastUtils.shortToast(0,"This is working")
}
}
在我的活动中调用它如下:
WorkManagerUtils.syncWorkManager()
您可以注意到,目前我只是将 toast 显示为我的工作。我想检查这是否有效?
但是吐司没有显示。