根据LiveData文档:
LiveData类具有以下优点:
...
始终是最新数据:如果生命周期再次启动(如从后端堆栈返回到启动状态的活动),它将收到最新的位置数据(如果尚未生成).
但有时候我不需要这个功能.
例如,我在ViewModel中跟随LiveData,在Activity中跟踪Observer:
//LiveData
val showDialogLiveData = MutableLiveData<String>()
//Activity
viewModel.showMessageLiveData.observe(this, android.arch.lifecycle.Observer { message ->
AlertDialog.Builder(this)
.setMessage(message)
.setPositiveButton("OK") { _, _ -> }
.show()
})
Run Code Online (Sandbox Code Playgroud)
现在每次旋转后都会出现旧的对话框.
有没有办法在处理后清除存储的值或者根本没有使用LiveData?