文章预览
LiveData是一个可以在给定生命周期内观察到的数据持有者类。一个观察者可以与一个LifecycleOwner成对地添加,并且只有当配对的LifecycleOwner处于活动状态时,这个观察者才会收到数据变动的通知。 一、LiveData-ViewModel-Repository 以下是LiveData结合ViewModel请求数据的伪代码,这也是JetPack中最常见的一种写法。 ViewModel层:继承ViewModel并创建LiveData,通过postValue将数据发射给UI。 class ExViewModel () : ViewModel() { private lateinit var repo: ExRepo val liveData: MutableLiveData = MutableLiveData() //调用postValue通知UI数据被改变 fun loadData () = liveData.postValue(repo.loadDataFromRepo()) } Repository层:从网络或者数据库中请求数据。 class ExRepo () { //网络请求或者从
………………………………