Android架构新增了一个组件WorkManager。
从示例中可以看到,
class CompressWorker(context : Context, params : WorkerParameters)
: Worker(context, params) {
override fun doWork(): Result {
// Do the work here--in this case, compress the stored images.
// In this example no parameters are passed; the task is
// assumed to be "compress the whole library."
myCompress()
// Indicate success or failure with your return value:
return Result.SUCCESS
// (Returning RETRY tells WorkManager to try this task again
// later; FAILURE says not to try again.)
}
}
val compressionWork = OneTimeWorkRequestBuilder<CompressWorker>().build()
如何创建一个可以在构造函数或 doWork
中接受参数的 Worker
?
workDataOf
。尽管它的方法签名允许传递其它类型的参数,但是由于Data
对象只能包含基本类型或者基本类型数组,因此你只能传递这些类型的参数。如果你尝试传递其它类型的参数,就会收到一个IllegalArgumentException
异常。 - nkotula