Jetpack---LiveData

1.livedata 是一個可被觀察的數(shù)據(jù)容器類,可將數(shù)據(jù)包裝起來,是數(shù)據(jù)成為被觀察者,當(dāng)數(shù)據(jù)發(fā)生變化的時(shí)候能夠讓觀察者得到通知,使用不需要自己實(shí)現(xiàn)觀察者模式,livedata內(nèi)部已經(jīng)實(shí)現(xiàn)好。同時(shí)livedata具有生命感知能力,可確保 LiveData 僅更新處于活躍生命周期狀態(tài)的應(yīng)用組件觀察者。頁面處于(Lifecycle.State.ON_STARTED或Lifecycle.State.ON_RESUME)頁面能夠收到livedata的通知,若頁面被銷毀(Lifecycle.State.ON_DESTROY)時(shí),Livedada會清除與頁面的關(guān)聯(lián),避免大聲內(nèi)存泄漏問題

2.使用方法:livedata是一個抽象類 不能直接使用 可以直接使用子類MutableLivedata



3.修改LiveData所包裝的數(shù)據(jù)時(shí) 通過LiveData.setValue(UI線程中) 和LiveData.postValue(非UI線程)

4.Livedata.observeForever()方法與Livedata.observe()區(qū)別,當(dāng)LiveData所包裝的數(shù)據(jù)發(fā)生變化時(shí),無論頁面處于什么狀態(tài),都會收到通知,所以用完后一定要調(diào)用removeObserver()停止觀察。否則Activity處于激活狀態(tài) 不會被系統(tǒng)自動回收。

參考:https://developer.android.google.cn/topic/libraries/architecture/livedata#java

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容