我正在尝试在我的应用中学习和实现带有数据绑定(bind)的MVVM。但是我在理解/决定一些事情方面面临困难。
我的应用程序中有一个标题 View ,需要在多个 Activity 中使用,所以我基本上创建了这个
view_header.xml
HeaderViewModel.java (implements java.util.Observer)
HeaderDataModel.java (extends java.util.Observable)
其中
HeaderViewModel
与view_header.xml
绑定(bind)。现在,我将
view_header.xml
包括在activity_xyz.xml
中,并像这样从XyzActivity
设置Header View的ViewModel,xyzViewBinding.setHeaderVm(new HeaderViewModel(new HeaderDataModel(mContext)));
现在我有以下问题:
1)由于
HeaderDataModel
需要上下文才能与SharedPreference
和BroadcastReceiver
一起使用,因此我在XyzActivity
而不是HeaderViewModel
中对其进行了初始化-这是正确的方法吗?2)我必须依靠广播接收器来更新我的 header View ,因此我在
HeaderDataMode
的构造函数中注册了它。现在因为我的HeaderDataModel
是Observable
,所以每当我收到广播时,我都会调用notifyObservers()
,以便观察者(HeaderViewModel)检测到它并更新它的 View 。-这是正确的方法吗?3)当我在HeaderDataModel的构造函数中注册接收者时,我在数据模型中创建了onDestroy()方法,并在其中注销了它,并从XyzActivity的onDestroy()调用了此onDestroy。-这是正确的方法吗?
最佳答案
关于android - 带有上下文的Android MVVM DataModel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45366819/