【发布时间】:2018-04-13 13:57:55
【问题描述】:
我有一个Activity,其中包含一些视图和 2 个片段(例如,TextInputFragment 和 VoiceInputFragment)。
我创建了下一个 ViewModel:
-
ActivityViewModel和void onInput(String value)方法 -
interface InputViewModel与LiveData<String> getInput()方法 -
TextInputViewModel和VoiceInputViewModel作为InputViewModel的实现
现在我想从两个片段中观察 getInput 并对它们做出反应。 我有下一个想法:
Activity.onCreate:
ActivityViewModel avm = ViewModelProviders.of(this).get(ActivityViewModel.class);
TextInputViewModel tivm = ViewModelProviders.of(this).get(TextInputViewModel.class);
tivm.getInput().observeForever(avm::onInput);
VoiceInputViewModel vivm = ViewModelProviders.of(this).get(VoiceInputViewModel.class);
vivm.getInput().observeForever(avm::onInput);
这个想法正确吗?当配置更改并且我的 ViewModel 尝试重新观察彼此时会发生什么?有什么解决办法吗?
【问题讨论】:
标签: java android android-architecture-components android-livedata android-viewmodel