在Android环境中,当收到响应时,决策点是否应该位于ViewModel内部(类似于my ViewModel中的情况):
if (response.isSuccess()) {
nextScreenLiveData.value = GO_TO_NEXT_SCREEN
} else if(response.isNeedAnotherScreen()) {
anotherScreenLiveData.value = ANOTHER_SCREEN
} else {
backToBeforeScreen = BACK_TO_BEFORE_SCREEN
}
然后在活动/片段中观察所有这些LiveData。意味着每个LiveData有一个oberver。
还是在我的ViewModel中执行类似操作更好:
liveData.value = response
然后在我的活动/片段中,让我做出决定:
liveData.observe(this, Observer { response ->
if (response.isSuccess()) {
goToNextScreen()
} else if(response.isNeedAnotherScreen()) {
goToAnotherScreen()
} else {
goBack()
}
}
提前谢谢。