如何解决Android - 使用实时数据和视图模型 (MVVM) 在片段和活动之间进行交互.. 动态导致问题
我在使用实时数据和共享视图模型作为片段和活动之间交互的媒介时遇到了问题。问题来了..
Activity A(有一个跨两个片段共享的视图模型 X)
---显示---->启动时的片段A(仪表板类型的视图)---在A中选择(视图模型更新)-->实时数据触发
--在activity中查看模型X观察变化并动态添加Fragment B到后台栈--> 片段 B 现在处于活动状态。
我面临的几个问题
-
我看到,在从片段 B 返回到片段 A 时,反之亦然,在获取最新数据之前,会在开始时观察到 livedata 的先前值。
-
在旋转/状态变化时,我的活动第二次观察片段变化(与上述相同)
有什么解决方法吗?或者有什么我遗漏的
提前致谢..
解决方法
作为一种快速解决方法,我采用了这种方法,只有当我的 viewLifeCycleOwner 处于恢复状态时,我才会观察我的更改。
getViewLifeCycleOwner().getCurrentState() == Lifecycle.State.RESUMED。 理想情况下,它应该是单一事件方法,但是为了快速修复,这应该可行。