如何将多个参数作为输入发送到 WorkManager?或者如何创建构造函数?或者如何将对象作为输入传递?
how to send several argumetns as input to WorkManager? or how to create constructor? or how to pass object as input?
我需要传递几个参数作为我的 WorkManager 的输入,但不知道如何传递。另外,我想通过存储库。
val data = workDataOf("cabinId" to task.cabinId)
val data2 = workDataOf("repository" to repository)
val uploadWorkRequest = OneTimeWorkRequestBuilder<WManager>()
.setInputData(data)
.setInputData(data2)
.build()
class WManager(appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
val input = inputData.getInt("cabinId", 99)
val input2 = inputData("repository")
return Result.success(outputData)
}}
我尝试为 Repository 实现可序列化接口,但它不起作用
你做对了。您可以将多个键值对传递给 workDataOf
.
所以像这样:
val data = workDataOf("cabinId" to task.cabinId, "repository" to repository)
val request = OneTimeWorkRequestBuilder<WManager>()
.setInputData(data)
.build()
WorkManager.getContext(context).enqueue(request)
这是假设 repository
是可序列化类型。如果没有,您将需要进行依赖注入。
我需要传递几个参数作为我的 WorkManager 的输入,但不知道如何传递。另外,我想通过存储库。
val data = workDataOf("cabinId" to task.cabinId)
val data2 = workDataOf("repository" to repository)
val uploadWorkRequest = OneTimeWorkRequestBuilder<WManager>()
.setInputData(data)
.setInputData(data2)
.build()
class WManager(appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
override fun doWork(): Result {
val input = inputData.getInt("cabinId", 99)
val input2 = inputData("repository")
return Result.success(outputData)
}}
我尝试为 Repository 实现可序列化接口,但它不起作用
你做对了。您可以将多个键值对传递给 workDataOf
.
所以像这样:
val data = workDataOf("cabinId" to task.cabinId, "repository" to repository)
val request = OneTimeWorkRequestBuilder<WManager>()
.setInputData(data)
.build()
WorkManager.getContext(context).enqueue(request)
这是假设 repository
是可序列化类型。如果没有,您将需要进行依赖注入。