我正在实施Android Architecture Components
。想象一下如下情况:Fragment
正在观察LiveData
来更改其UI。用户最小化应用程序并更改状态(在我的情况下从存储库中)。因此,Observer
中的Fragment
不会因更改而触发,因为Fragment
不可见。但是,当用户返回应用程序时,它不会触发新状态。如果状态再次更改(Fragment
可见),则Observer
会收到更改。当片段再次可见时,您知道任何强制更新的方法吗?
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
vm = ViewModelProviders.of(this, viewModelFactory).get(MyViewModel::class.java)
vm.getStatus()?.observe(this, Observer<MyRepository.Status> { status ->
if (status != null) {
when (status) {
NONE -> setNoneUI()
LOADING -> setLoadingUI()
CONTENT -> setContentUI()
ERROR -> setErrorUI()
}
}
})
}