当前在我的Android MVVM项目中,我具有三个Dagger范围:
它们在对象生命周期管理方面非常有用。但是,有一种情况我无法解决:
在Dagger 2中实现视图模型范围在技术上是否可行?(当然是来自拱形组件的视图模型)。
让我们以这种情况为例:我希望能够将某个类的相同实例注入视图模型和片段(该视图模型的宿主)。该实例必须一直存在,只要视图模型有效,因此,如果我旋转屏幕并重新创建片段,它将注入相同的实例。
现在我所能想到的就是在Singleton范围内拥有该实例,但这不好,因为一旦视图模型被破坏,我必须进行一些手动状态管理以清除该实例的状态。
答案 0 :(得分:0)
您可以像这样为视图模型创建注释类
465656
我已经在该存储库中编写了如何将视图模型注入活动https://github.com/ibrahimsn98/android-mvvm-dagger-2-rxjava-example
答案 1 :(得分:0)
这很有可能!
创建一个自定义注释,用自定义注释对ViewModel和所述类进行注释。反过来,您必须注释(子)组件,该组件也将向ViewModel提供此自定义注释。
但是,ViewModel的生命周期将与(子)组件绑定。