如何在Android中从viewmodel调用AppUpdateManager.startUpdateFlowForResult()
。它需要一个活动/片段作为参数。
你不应该,你应该使用一个名为state的实时数据对象(也许也使用枚举( 要管理 ViewModel 中的状态,请观察活动(或片段(中的实时数据并根据状态执行适当的操作.
假设您需要三种状态,并且 ViewModel 中的某个位置需要调用AppUpdateManager.startUpdateFlowForResult()
,您的代码应如下所示:
enum class State {
StateOne,
StateTwo,
StateThree
}
在您的视图模型中:
val state = MutableLiveData<State>()
...
fun somewhere() {
....
// instead of calling AppUpdateManager.startUpdateFlowForResult() set the proper state
// I assume its stateThree
state.postValue(State.StateThree)
}
现在,在您的活动中 onCreate(( :
viewModel.state.observe(this) { yourstate ->
yourstate?.also { state ->
when (state) {
State.stateOne -> {
// do something
}
State.stateTwo -> {
// do something
}
State.stateThree -> {
AppUpdateManager.startUpdateFlowForResult()
}
}
}
}
我希望它足够清楚