【发布时间】:2019-05-27 13:27:47
【问题描述】:
我通过 MVVM 模式和 google jetpack 依赖项开发了一个应用程序。
我有一个SampleViewModel,它有一个我需要它的方法观察者。
我有两个视图,分别称为 FActivity 和 SActivity,因为首先我在 FActivity 中创建了实例 SampleViewModel 并通过 ViewModel 订阅观察者到 LiveData:
class FActivity : Acivity{
onCreate(){
val vm = ViewModelsProviders
.of(this)
.get(SampleViewModel::class.java)
vm.liveData.observe(this, Observer { basic ->
Log.i("TAG", "Yes I received from SActivity");
});)
}
}
现在,我将在SActivity 中操作enqueue() 方法并在FActivity 中进行观察
class SActivity : Acivity{
onCreate(){
val vm = ViewModelsProviders
.of(this)
.get(SampleViewModel::class.java)
vm.enqueue();
}
但我跟踪创建实例 ViewModelProviders 的操作,该实例更新实例 ViewModel 并且没有观察到 FActivity。
现在,我将知道最好的处理方式是什么?
【问题讨论】:
-
同一活动的片段之间可以共享相同的 ViewModel 对象,但不同的活动不能共享。
-
@JeelVankhede,我明白了,但没办法活动?
标签: java android mvvm kotlin android-jetpack