我想在 WorkManager 中注入(inject)共享 viewModel。但是
by sharedViewModel<MyModel>()
尚未解决。
class MyCoroutineWorker(context: Context, params: WorkerParameters):CoroutineWorker(context, params)
, KoinComponent {
override val coroutineContext = Dispatchers.IO
val gameListModel by sharedViewModel<MyModel>()
override suspend fun doWork(): Result = coroutineScope {
Result.success()
}
}
如有任何建议,我们将不胜感激。
最佳答案
正如 @Pranay 所说,它不是为这样的用例而设计的!
因为 WorkManager
在底层使用了 JobSchedulers
和其他组件。而且当工作执行时,不保证 Koin 在开始工作之前会被初始化。
此外,如果您想向您的工作传递一些参数,您应该考虑将它们传递给 Worker
实现类或将它们存储到 SharedPreferences
并在工作时访问它们工作已执行
关于android-viewmodel - 科因 : how inject a sharedViewModel in WorkManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56087073/