【发布时间】:2018-02-13 05:28:43
【问题描述】:
onStart() 是 Fragment 变为可见时,onResume() 是 Fragment 变为交互式时。那么onResume() -> onPause() -> onResume() 循环何时执行而不执行包含的onStart() -> onStop() 循环?
就fragment 转换而言,替换将销毁起始片段,调用其onPause() -> onStop() 以及其他与销毁相关的生命周期方法。如果转换是替换但将起始fragment 添加到**backStack**,它仍然会调用onPause() -> onStop(),除非没有完全破坏片段并将其与活动分离。在仅覆盖另一个片段的情况下,不会执行起始片段的 lifecycle 事件,因为它仍然存在,只是不可见(另一个片段被绘制在它上面)。
我不确定什么时候会在没有onStart() 的情况下调用onResume(),以及在没有onStop() 的情况下调用onPause()。
编辑:除了这里已经有的答案,使用 android 分屏也会暂停片段而不停止它。
【问题讨论】:
-
我认为在使用警报对话框时,当警报对话框被调用时,片段将转到 onPause(),当警报对话框关闭时,它会调用 onResume()
-
我相信使用分屏也可以做到这一点。
标签: android android-fragments fragment-lifecycle