【发布时间】:2020-11-06 19:57:28
【问题描述】:
Navigation component 推荐单一 Activity 架构,Dagger 上的页面建议使用 Dagger 范围跨 Fragment 共享通用 ViewModel。
但这需要有一个父 Activity,Fragments 从中获取 Dagger 组件,如文档中的这一行所示:(activity as LoginActivity).loginComponent.inject(this)
当您的应用程序中只有一个 Activity 时,这有点毫无意义,因为这与在整个应用程序的生命周期中使用 @Singleton 范围基本相同。它还阻止您使用FragmentScenario 测试您的片段,因为它们现在与您的特定活动相关联。
在不给它@Singleton 范围或将其绑定到 Activity 的情况下,通过 Dagger 跨 Fragments 共享单个 ViewModel 的最佳方式是什么?
【问题讨论】:
标签: android android-fragments dagger-2 dagger android-viewmodel