LiveData - Ki-Kobayashi/Android-Wiki GitHub Wiki

🟩 StateFlowとLiveDataの違い

StateFlow
(状態保持に特化したSharedFlow)
LiveData
初期値 ・初期値必須(非Null)
・初期値が必ず通知される
・初期値不要(Null許容)
・Observeのタイミングでは何も通知されない
・Javaベース
メイン・ワーカースレッド代入 xxx.value = 〇〇

※一律な書き方
・ワーカースレッド
  xxx.postValue(〇〇)
・メインスレッド
  xxx.value = 〇〇
FragmentでのCollect ・lifecycleScope.launch(スレッド指定){}
  or
・launchIn

を使用できるためスレッド制御が柔軟
できない・・・
通知生存期間 CoroutineScopeが生きている間なら、バックグラウンドにAPPがいても通知される 下記2つを満たしていないと、通知されない
・ライフサイクルがSTATED
     +
・フォアグランド

.

🟩 LiveDataの使い方

  • LiveDataは、ViewModelで定義する

🟡 定義方法:その1

// 【LiveData使用の場合】監視したい値の定義(変更はこのクラスでのみ行うようにする)
    private val _newsHeadLines = MutableLiveData<ApiResource<NewsResponse>>()
    val newsHeadLines: LiveData<ApiResource<NewsResponse>> get() = _newsHeadLines

🟡 定義方法:その2

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

🟩

🟡

.

⚠️ **GitHub.com Fallback** ⚠️