Bil*_*sin 5 observers kotlin android-livedata
我想观察房间数据库中的一行。一段时间后它会改变。但是当我们点击停止按钮时,它需要停止观察表单数据库,当点击开始按钮时,它会再次开始观察。
我当前的代码是创建观察者
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}
}
Run Code Online (Sandbox Code Playgroud)
为了开始/停止观察,LiveData您应该使用observe()/removeObserver()方法。就如此容易。如果可以访问LifecycleOwner( Fragment, Activity),则使用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)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |