And*_*rea 5 android background coroutine androidx
我有WorkManager它用于通过网络发送数据,但是由于某些奇怪的原因CoroutineWorker'sdoWork没有被调用。这是我的代码:
val data = workDataOf(Constants.TAG to "newValue")
val request =
OneTimeWorkRequestBuilder<CustomWorker>()
.addTag(Constants.TAG)
// Sets the input data for the Worker
.setInputData(data)
.setInitialDelay(60, TimeUnit.SECONDS)
// Set a backoff criteria to be used when retrying
.setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 30000, TimeUnit.MILLISECONDS)
.build()
// Enqueue the request instance
WorkManager.getInstance(this)
.beginUniqueWork(Constants.TAG, ExistingWorkPolicy.REPLACE, request)
.enqueue()
Run Code Online (Sandbox Code Playgroud)
这是初始化 WorkManager 的代码,其代码CoroutineWorker是这样的:
class CustomWorker(context: Context, params: WorkerParameters) : CoroutineWorker(context, params) {
override suspend fun doWork(): Result = coroutineScope {
Log.d("PLEASE", "doWork called!")
// Get the FCM token from the input data
val newToken = inputData.getString(Constants.TAG)
}
Run Code Online (Sandbox Code Playgroud)
内部没有调用 Log doWork,这是为什么呢?
| 归档时间: |
|
| 查看次数: |
918 次 |
| 最近记录: |