假设在BaseViewModel中的属性isLogin需要在多个fragment和activity中监听
将需要在多个页面监听的属性设置为属于某个类,而不属于某个实例,那个就可以实现单个属性的单例,从而实现一处修改,多处监听。
现在有SettingFragment、MainActivity和与之对应的SettingFragmentViewModel、MainActivityViewModel,和BaseViewModel,BaseViewModel是SettingFragmentViewModel和MainActivityViewModel的父类
open class BaseViewModel:ViewModel() {
companion object{
var isLogin:MutableLiveData<Boolean> = MutableLiveData()
}
fun getLoginStatus():MutableLiveData<Boolean>{
return isLogin;
}
}