【问题标题】:Handle To Remove/Add Live Data Observer to Observe On Button Click删除/添加实时数据观察者以观察按钮单击时的句柄
【发布时间】:2020-06-25 03:21:41
【问题描述】:

我想观察房间数据库中的一行。它会在一段时间后改变。但是当我们点击停止按钮时,它需要停止观察表单数据库,当点击开始按钮时,它会再次开始观察。

我当前的代码是 创建观察者

    private lateinit var recordObserver: Observer<Ride>

    recordObserver= Observer<Ride> { rides ->

                    if (rides != null) 

                        updateData(rides)

                    else
                        setDataToZero()
                } 

when(isState){
     Constants.isrunning->{//need to start observer}
     Constants.Stop->{//need to stop observer}
}

【问题讨论】:

    标签: kotlin android-livedata observers


    【解决方案1】:

    为了开始/停止观察LiveData,您应该使用observe() / removeObserver() 方法。就如此容易。如果您可以访问LifecycleOwnerFragmentActivity),请使用fun observe(),如果没有,请使用fun observeForever()

    您的代码将如下所示:

    val liveData = database.observeRides()  // get your live data
    when(isState){
        Constants.isrunning -> { 
            liveData.observe(this, recordObserver) 
        }
        Constants.Stop -> {
            liveData.removeObserver(recordObserver) 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 2018-01-06
      相关资源
      最近更新 更多