Should I include LifecycleOwner in ViewModel?

后端 未结 2 578
心在旅途
心在旅途 2020-12-29 23:28

LifecycleOwner is currently needed in order for me to create an observer.

I have code which creates an Observer in the ViewModel so I attach the LifecycleOwner when

2条回答
  •  误落风尘
    2020-12-30 00:03

    No. If you wish to observe changes of some LiveData inside your ViewModel you can use observeForever() which doesn't require LifecycleOwner.

    Remember to remove this observer on ViewModel's onCleared() event:

    val observer = new Observer() {
      override public void onChanged(Integer integer) {
        //Do something with "integer"
      }
    }
    

    ...

    liveData.observeForever(observer);
    

    ...

    override fun onCleared() {
        liveData.removeObserver(observer) 
        super.onCleared()
    }
    

    Very good reference with examples of observe LiveData.

提交回复
热议问题