之前一直使用MVP开发。刚上班看一下MVVM。LiveData+ViewModel确实比较给力,但看到databinding感觉xml写法复杂了很多,先记录下LiveData配合ViewModel使用。
LiveData 优点
不会再产生由于Activity处于stop状态而引起的崩溃。如果观察者的生命周期是不活跃的,例如 activity 处于后台,那么将不会收到任何 LiveData 事件。
总是实时刷新数据。当组件处于活跃状态或者从不活跃状态到活跃状态时总是能收到最新的数据
数据共享。多个页面同时监听同一个状态
ViewModel优点
存放与UI有关的数据,将UI与数据分割开。
最简单的用法
1.创建ViewModel
public class SimpleViewModel extends ViewModel {
private MutableLiveData<String> content;
public MutableLiveData<String> getContent() {
if (content == null) {
content = new MutableLiveData<>();
}
return content;
}
public void setContent(MutableLiveData<String> content) {
this.content = content;
}
/**
* 获取数据
*/
public void getContentData() {
//这里可以加一层Repo