Ich implementiere Android Architecture Components
. Stellen Sie sich einen Fall wie den folgenden vor, in dem Ihr Fragment
einen LiveData
beobachtet, um seine Benutzeroberfläche zu ändern. Benutzer minimiert die App und der Status wird geändert (in meinem Fall aus dem Repository). So wird die Observer
aus der Fragment
nicht mit einer Änderung ausgelöst, weil die Fragment
nicht sichtbar ist. Wenn der Benutzer jedoch zur App zurückkehrt, wird der neue Status nicht ausgelöst. Wenn der Status erneut geändert wird (während Fragment
sichtbar ist), erhält die Observer
die Änderung. Können Sie eine Aktualisierung erzwingen, wenn das Fragment wieder sichtbar ist?Erzwinge LiveData Observer in einem Fragment, um eine Änderung zu erhalten, nachdem es wieder sichtbar wird?
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()
}
}
})
}