LiveData LiveData是基于观察者模式创建的,其中,LiveData是被观察者,观察者通过注册方法,监听被观察者的数据变化。LiveData在数据发生变化的时候,会通知观察者。 LiveData是一个容器,存放数据的容器,它的数据变化可以被监听,也就是LiveData是一个被观察者,如下,创建了一个存放String的数据容器currentName: publicclassNameViewModelextendsViewModel{ //CreateaLiveDatawithaString privateMutableLiveData<String>c...

  kpbRubPMVKYl   2023年11月01日   35   0   0 Android开发

查询资料的其中一个场景: 创建一个回调函数,当查询后台的时候,后台有结果了,回调对应的回调函数,并将结果保存到LiveData中。 publicclassDataModel{     ...     publicMutableLiveData<List<Repo>>searchRepo(Stringquery){         finalMutableLiveData<List<Repo...

  kpbRubPMVKYl   2023年11月01日   40   0   0 Android开发

LiveData本身不能在进程销毁中存活,当内存不足时,Activity被系统杀死,ViewModel本身也会被销毁。 为了保存LiveData的数据,使用SavedStateHandle。 事故场景: 进程销毁后,重新去通过ViewModel去获取LiveData数据,获取到的数据是null。 这表示ViewModel不具备onSavedInstance的功能。   引入SavedStateHandle,进程销毁重建就可以获取到数据: privateSavedStateHandlemState; publicSavedStateViewModel...

  kpbRubPMVKYl   2023年11月01日   74   0   0 Android开发

MVVM架构,将整个应用分为三层,View层,VM层,Model层。其中View层单向引用VM层,VM层单向引用Model层。如上图。 单向引用,而非双向引用,这是MVVM与MVP最大的区别。View层,只是单向引用VM层,VM层不需要引用View层,但是却可以 更新View层。这是通过VM层的观察者模式实现的,在这里使用架构组件LiveData,观察者注册LiveData,当LiveData数据发生变更 的时候,就会通知注册的观察者。 VM层,执行业务逻辑,获取Model层的数据,Model层的数据由repository来提供。   举例子: Ch...

  kpbRubPMVKYl   2023年11月01日   42   0   0 Android开发
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~