iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0

當我們的應用程式顯示資料的時候,通常會希望資改變的時候畫面也會跟著改動,像是遊戲過關讓分數增加、加入購物車讓提示更改等,所以我們會需要觀察資料,當資料發生變化的時候做出相對應的反應,這時候就推薦使用 LiveData,它是一種持有可被觀察資料的類,且有生命週期感知能力的,像是能在 Activitie、Fragment、Services 生命周期是活躍狀態時更新,而活躍狀態就是昨天提到的 STARTED 和 RESUMED。

使用 LiveData 的好處

  • 確保 UI 上的資料與實際資料是相符的
    LiveData 採用了觀察者模式,在資料更新時,LiveData Observer 都會通知,就不需要在每次資料更新時去修改UI,觀察者會幫我們執行這個動作。

  • 避免了 memory leak
    如果觀察者的生命週期狀態被破壞,LiveData 能夠將其移除,從而避免 memory leaks 的發生。

  • 不需要手動去處理生命週期
    UI組件只是觀察相關的資料,不會去停止或恢復觀察,因為 LiveData 在觀察時知道相關的生命週期變化所以會自動處理。

  • 不會因為 Activity 在 stop 狀態時產生崩潰
    如果 Activity 在後台的時候,就不會收到LiveData的任何事件。

  • 即時的資料更新
    當生命週期從非活動狀態變為活動狀態時接收最新的資料,像是 Activity 從後台回到前台時立刻更新資料。

  • 改善配置更改產生的問題
    如果因為配置改變(例如旋轉手機畫面)而創造了新的 Activitie 或 Fragment ,就會立刻更新最新的資料。

  • 數據共享
    如果對應的 LiveData 是單例模式的話,可以在應用程式內分享持有的資料。

參考資料

LiveData overview


上一篇
第十天:Android Architecture Components 之 Lifecycle
下一篇
第十二天:Android Architecture Components 之 ViewModel
系列文
轉職成 Android Developer 的最後一哩路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言