AndroidStudy
AndroidStudy copied to clipboard
BaseMvvmActivity中mViewModel的初始化
请问,MvvmExampleActivity的WanViewModel在BaseMvvmActivity初始化了?这样多个Activity的viewmodel都在此的话,对所有Activity都可见了? 如果不在BaseMvvmActivity初始化的话registerEvent方法 mViewModel.errorFlow又没办法统一在BaseMvvmActivity中处理,怎么处理比较好呢? 作者可以写个示例吗,期待您的回复
感谢反馈,没注意到这个,优化了下,因为我们的目的是为了在BaseMvvmActivity里去处理Loading、error、normal等状态,所以需要在BaseMvvmActivity里拿到ViewModel的实例,这里可以抽象在基类里定义,然后在子类里把ViewModel示例传入:
BaseMvvmActivity中: abstract class BaseMvvmActivity : BaseActivity() { abstract fun getViewModel(): BaseViewModel }
子类中: class MvvmExampleActivity : BaseMvvmActivity() { private val mViewModel: WanViewModel by viewModels() override fun getViewModel(): BaseViewModel = mViewModel } 这样就可以传入,mViewModel.errorFlow等也可以在基类里处理了,代码已经提交了,可以再看下示例。