当应用程序来自后台时,观察者总是被触发

diA*_*iAz 2 android observers android-livedata

livedata在 viewpager 中的 Fragment 中使用 。我观察 liveDataonActivityCreated()并在列表中显示数据。到目前为止一切顺利,我没有任何问题。另一方面,当我将应用程序置于后台并返回到 viewpager 的任何页面时,会Observer再次调用,我不明白为什么!请帮助我理解。我什至没有浏览onResume()相关片段。

Abd*_*air 6

正如您在附图中所看到的,Fragment 的生命周期与 Activity 的生命周期几乎没有什么不同,在 Fragment 中转到后台会导致调用以下函数:

onPause() -> onStop() -> onDestroyView()
Run Code Online (Sandbox Code Playgroud)

当回调到视图时,它会调用以下函数

onCreateView() -> onActivityCreated() ->  onStop() -> onResume()
Run Code Online (Sandbox Code Playgroud)

因此,在 onActivityCreated() 方法中再次调用观察者。如果您希望您的观察者不再被调用,您应该将其添加到相应片段的 onCreate() 方法中。