當我們的應用程式顯示資料的時候,通常會希望資改變的時候畫面也會跟著改動,像是遊戲過關讓分數增加、加入購物車讓提示更改等,所以我們會需要觀察資料,當資料發生變化的時候做出相對應的反應,這時候就推薦使用 LiveData,它是一種持有可被觀察資料的類,且有生命週期感知能力的,像是能在 Activitie、Fragment、Services 生命周期是活躍狀態時更新,而活躍狀態就是昨天提到的 STARTED 和 RESUMED。
確保 UI 上的資料與實際資料是相符的
LiveData 採用了觀察者模式,在資料更新時,LiveData Observer 都會通知,就不需要在每次資料更新時去修改UI,觀察者會幫我們執行這個動作。
避免了 memory leak
如果觀察者的生命週期狀態被破壞,LiveData 能夠將其移除,從而避免 memory leaks 的發生。
不需要手動去處理生命週期
UI組件只是觀察相關的資料,不會去停止或恢復觀察,因為 LiveData 在觀察時知道相關的生命週期變化所以會自動處理。
不會因為 Activity 在 stop 狀態時產生崩潰
如果 Activity 在後台的時候,就不會收到LiveData的任何事件。
即時的資料更新
當生命週期從非活動狀態變為活動狀態時接收最新的資料,像是 Activity 從後台回到前台時立刻更新資料。
改善配置更改產生的問題
如果因為配置改變(例如旋轉手機畫面)而創造了新的 Activitie 或 Fragment ,就會立刻更新最新的資料。
數據共享
如果對應的 LiveData 是單例模式的話,可以在應用程式內分享持有的資料。