如何AppUpdateManager.startUpdateFlowForResult()
从 android 中的 viewmodel 调用。它需要一个活动/片段作为参数。
问问题
144 次
1 回答
0
你不应该,你应该使用一个名为 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()
}
}
}
}
我希望它足够清楚
于 2020-07-06T00:03:55.527 回答