我正在努力学习&在我的应用程序中使用数据绑定实现MVVM。但是我在理解/决定一些事情方面遇到了困难。
我的应用程序中有一个标题视图,我需要在多个活动中使用,所以我基本上创建了这个
view_header.xml
HeaderViewModel.java (implements java.util.Observer)
HeaderDataModel.java (extends java.util.Observable)
其中HeaderViewModel
与view_header.xml
绑定。
现在,我将view_header.xml
添加到activity_xyz.xml
&从XyzActivity
这样设置标题视图的ViewModel,
xyzViewBinding.setHeaderVm(new HeaderViewModel(new HeaderDataModel(mContext)));
现在我有基于此的问题:
1)由于HeaderDataModel
需要使用上下文来处理SharedPreference
& BroadcastReceiver
,我在XyzActivity
而不是HeaderViewModel
内初始化它 - 这是正确的做法吗?
2)我不得不依赖广播接收器来更新我的标题视图,所以我在HeaderDataMode
的构造函数中注册了它。现在我的HeaderDataModel
是Observable
,每当我收到广播时,我都会调用notifyObservers()
,以便观察者(HeaderViewModel)检测到它&更新它的视图.-这是正确的方法吗?
3)当我在HeaderDataModel的构造函数中注册接收器时,我在数据模型中创建了onDestroy()方法,在此我取消注册它&我从XyzActivity的onDestroy()中调用了这个onDestroy。这是正确的方法吗?
答案 0 :(得分:0)