什么时候调用 onResume() 而不先调用 onStart()(片段生命周期)

When will onResume() be called without onStart() being called first (Fragment Lifecycle)

onStart() 是 Fragment 变为可见时,onResume() 是 Fragment 变为可交互时。那么 onResume() -> onPause() -> onResume() 循环什么时候执行而不执行包围 onStart() -> onStop() 循环?

fragment 转换而言,替换将销毁起始片段,调用其 onPause() -> onStop() 以及其他与销毁相关的生命周期方法。如果转换是替换但将起始 fragment 添加到 **backStack**,它仍然会调用 onPause() -> onStop() 除非完全破坏片段并将其从 [=37 中分离出来=].在仅覆盖另一个片段的情况下,开始片段的 lifecycle 事件中的 none 被执行,因为它仍然在那里只是不可见(另一个片段被绘制在它上面)。

我不确定 onResume() 何时会在没有 onStart() 的情况下被调用,以及 onPause() 何时会被调用 onStop()

编辑:连同此处已有的答案,使用 android 分屏也会暂停片段而不停止它。

当您的 activity 在显示对话框或另一个 activity 显示在顶部且具有透明度时保持可见。

基本上你的 activity 在 onStart()onStop() 之间可见,而你的 activity 在 onResume()onPause() 之间是互动的。当它在保持可见的同时变得不可交互时,您将在没有 onStop 的情况下获得 onPause。