首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >观察者总是在应用程序来自后台时触发

观察者总是在应用程序来自后台时触发
EN

Stack Overflow用户
提问于 2019-09-20 21:22:37
回答 2查看 2K关注 0票数 2

我在viewpager中的片段中使用livedata。我观察onActivityCreated()中的liveData并将数据显示在列表中。到目前为止一切顺利,我没有任何问题。另一方面,当我把应用程序放在后台并返回到我的viewpager的任何页面时,Observer被再次调用,我不明白为什么!请帮我理解一下。我甚至没有看过有问题的片段的onResume()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-20 21:49:22

正如您在附加的图像中所看到的,片段的生命周期与活动的生命周期略有不同,因为片段转到后台会导致调用以下函数:

代码语言:javascript
运行
复制
onPause() -> onStop() -> onDestroyView()

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

代码语言:javascript
运行
复制
onCreateView() -> onActivityCreated() ->  onStop() -> onResume()

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

票数 4
EN

Stack Overflow用户

发布于 2019-09-20 21:25:49

如果观察者的生命周期处于启动或恢复状态,则LiveData认为观察者处于活动状态。LiveData仅通知活动观察者有关更新的信息。注册为监视LiveData对象的非活动观察者不会收到有关更改的通知。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58029241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档