【发布时间】:2020-11-18 16:03:11
【问题描述】:
MyApp 需要在整个上下文中持有一个 User 对象,A,B,C 活动的xml 使用这个User 对象,当A 编辑用户时,我想要B 和C 通知更改,如何处理数据绑定、livedata 和viewModel 的这个问题?
之前我让User.class扩展BaseObservable,但是POJO会很麻烦,不能为null,有时User可能为null比如没有登录。 现在我改为使用 LiveData,使 Pojo 变得简单而不是扩展 BaseObservable,但是当 A 编辑,B 和 C 不起作用时,我认为我需要 ABC 在内存中使用相同的 viewModel 实例,但这会导致 viewModel 的 onClear() 多次触发。
【问题讨论】:
-
您可以自定义
ViewModelFactory以使用单色ViewModel。 -
它并不像this blog post 所暗示的那么可怕,但
ViewModel确实为粗心的人带来了一些陷阱。您的问题很难理解,但听起来您可能陷入了其中一个陷阱。 -
@Jeel Vankhede,我发现github.com/googlesamples/android-architecture-components/issues/…viewModel的onCleared()中的ViewModelFactory解决方案可能触发3次以上