小编Mac*_*ter的帖子

Android Dagger Hilt:我们是否需要 ViewModel 的范围注释?

在我的应用程序中,我有一个需要访问 ViewModel 的 MainActivity。我正在使用 DaggerHilt 和 @ViewModelInject 注释注入 ViewModel。此外,我在 Activity 中有两个 Fragment,它们需要访问同一个 ViewModel,以便使用 observable 相互传递数据。

问题:我发现每当我的一个 Fragment 通过onDestroy()它的 ViewModel 时就会被杀死。这让我认为 Activity 和 Fragment 没有共享同一个 ViewModel。

我的问题:有谁知道我们是否应该在 Dagger Hilt 中为 ViewModel 使用范围注释?我在 Hilt 文档或 android 开发教程/指南中没有看到这一点。我曾假设他们正在制作 ViewModels 应用程序级别的单例,这是有道理的。

如果我们必须为 ViewModel 使用范围注释,有没有人知道哪个级别合适?

这是我的视图模型代码:

class MainActivityViewModel @ViewModelInject constructor(
    private val repo: Repo,
    private val rxSharedPrefsRepo: RxSharedPrefsRepo,
    private val resourcesRepo: ResourcesRepo,
    @Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
Run Code Online (Sandbox Code Playgroud)

android dagger android-viewmodel dagger-hilt

3
推荐指数
1
解决办法
2711
查看次数

标签 统计

android ×1

android-viewmodel ×1

dagger ×1

dagger-hilt ×1