MutableLiveData 旧数据问题

`
/**

  • 解决粘性问题,解决后添加的observe会收到老数据问题
    */
    class UnPeekLiveData : MutableLiveData() {

    private var pending = false

    override fun setValue(value: T?) {
    pending = true
    super.setValue(value)
    }

    override fun observe(owner: LifecycleOwner, observer: Observer) {
    super.observe(owner, Observer { t ->
    if (pending) {
    pending = false
    observer.onChanged(t)
    }
    })
    }

    /**

    • 为了保持与LiveData.observe的一致性,提供一个观察方法不需要粘性事件。
      */
      fun observeSticky(owner: LifecycleOwner, observer: Observer) {
      super.observe(owner, observer)
      }
      }`
posted @ 2024-06-11 16:40  烟花易冷心易碎  阅读(9)  评论(0编辑  收藏  举报