LiveData LiveData是基于观察者模式创建的,其中,LiveData是被观察者,观察者通过注册方法,监听被观察者的数据变化。LiveData在数据发生变化的时候,会通知观察者。 LiveData是一个容器,存放数据的容器,它的数据变化可以被监听,也就是LiveData是一个被观察者,如下,创建了一个存放String的数据容器currentName: publicclassNameViewModelextendsViewModel{ //CreateaLiveDatawithaString privateMutableLiveData<String>c...
查询资料的其中一个场景: 创建一个回调函数,当查询后台的时候,后台有结果了,回调对应的回调函数,并将结果保存到LiveData中。 publicclassDataModel{ ... publicMutableLiveData<List<Repo>>searchRepo(Stringquery){ finalMutableLiveData<List<Repo...
LiveData本身不能在进程销毁中存活,当内存不足时,Activity被系统杀死,ViewModel本身也会被销毁。 为了保存LiveData的数据,使用SavedStateHandle。 事故场景: 进程销毁后,重新去通过ViewModel去获取LiveData数据,获取到的数据是null。 这表示ViewModel不具备onSavedInstance的功能。 引入SavedStateHandle,进程销毁重建就可以获取到数据: privateSavedStateHandlemState; publicSavedStateViewModel...
MVVM架构,将整个应用分为三层,View层,VM层,Model层。其中View层单向引用VM层,VM层单向引用Model层。如上图。 单向引用,而非双向引用,这是MVVM与MVP最大的区别。View层,只是单向引用VM层,VM层不需要引用View层,但是却可以 更新View层。这是通过VM层的观察者模式实现的,在这里使用架构组件LiveData,观察者注册LiveData,当LiveData数据发生变更 的时候,就会通知注册的观察者。 VM层,执行业务逻辑,获取Model层的数据,Model层的数据由repository来提供。 举例子: Ch...