让我们假设我们有一个带有3个隐藏按钮的Activity,并且它有一个viewModel,它在后台有3个不同的操作。完成后的每个操作都会向“视图”发送信号以显示其按钮。
活动
class MyActivity : BaseAppCompatActivity() {
private lateinit var viewModel: MyViewModel
//this method called by onCreate
override fun initViews(binding: ViewDataBinding) {
viewModel = ViewMode()
}
fun WhenEventAHappens() {
viewModel.performA()
}
fun WhenEventBHappens() {
viewModel.performB()
}
fun WhenEventCHappens() {
viewModel.performC()
}
}
ViewModel
class MyViewModel : BaseViewModel() {
fun performA(){
//Do some staff
//Update UI : Show button A
}
fun performB(){
//Do some staff
//Update UI : Show button B
}
fun performC(){
//Do some staff
//Update UI : Show button C
}
}
我的问题是,我正在从ViewModel for View发送3个不同的信号,这些信号的调用不会相互重叠。最好的解决方案是什么?
单个可观察参数?
多个可观察,每个操作一个?
其他?
其他信息:异步任务在后台完成,所有更新都在主线程中完成,我的问题不是关于线程,而是关于观察者