android-viewmodel - 科因 : how inject a sharedViewModel in WorkManager?

标签 android-viewmodel koin

我想在 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/

相关文章:

android - 我应该在 fragment/Activity 中还是在 View 模型中编写此代码?

java - Android Paging Library如何知道加载更多数据?

java - Fragment 无法从 ViewModel 获取值

Android,无法从分离的 fragment 访问 ViewModel

kotlin - 如何在顶级函数中使用 koin 注入(inject)依赖项

dependency-injection - 如何注入(inject)数据类

android - 使用导航图范围 : NavController is not available before onCreate() 注入(inject) View 模型

android - 如何用架构组件正确实现android Lifecycle

java - 如何测试注入(inject)了 Koin 的 viewModel?

android - 由 : org. koin.core.error.InstanceCreationException : Could not create instance for [type:Factory, primary_type 引起