7

我正在关注创建片段处理片段生命周期管理活动生命周期以及暂停和恢复活动这四个主题。所以我对此有点怀疑。我的问题是

  1. 如果 A通过Activity调用 B但 A 不调用方法,则如果 B 是,则 A 将处于状态,如果 B 是,则处于状态。我对吗?ActivityIntentfinish()PauseTransparentSemiTransparentStopOpaque
  2. 如果AActivity包含FragmentF,那么如果A将进入Pause状态,那么F将进入Pause状态,如果A将处于Stop状态,那么F也将处于Stop状态。我对吗?
  3. 如果 A 调用 BActivity 并且 B 是,Transparent那么 A 将处于Pause状态,F 也将处于状态。如果 B 调用finish(),那么 A 将进入Resume状态,但 F 会发生什么?它会从暂停中恢复吗?如果是这样,那么如何以及采取什么步骤,因为我没有看到Fragment生命周期中的任何直接链接,这表明ActivityonPause()可以onResume()直接执行。

    希望我能问我想要什么。对不起我的英语不好。

4

2 回答 2

3
  1. 如果 B 是半透明的或部分可见的,你不能确定只有 onPause 会在 A 上被调用,据我所知:

    暂停

    另一个活动在前台并具有焦点,但这个活动仍然可见。也就是说,另一个活动在此活动之上可见,并且该活动是部分透明的或不覆盖整个屏幕。暂停的活动是完全活动的(活动对象保留在内存中,它维护所有状态和成员信息,并保持连接到窗口管理器),但可以在内存极低的情况下被系统杀死。

  2. 是的你是对的:

    片段所在的活动的生命周期直接影响片段的生命周期,因此活动的每个生命周期回调都会导致每个片段的类似回调。例如,当 Activity 收到 onPause() 时,Activity 中的每个 Fragment 都会收到 onPause()。

    然而,相反的情况并非如此,这意味着如果一个片段接收到 onStop,那并不能保证 Activity 的 onStop 会被调用。

  3. 我不太清楚你最后一句话是什么意思,或者你是如何测试的。根据片段文档:

    公共无效 onResume ()

    当片段对用户可见并且正在运行时调用。这通常与包含 Activity 生命周期的 Activity.onResume 相关联

    它之所以这么说,是因为它取决于活动如何处理片段。

于 2012-11-18T09:48:02.130 回答
0
  1. 如果 A Activity 通过 Intent 调用 B Activity 但 A 没有调用 finish() 方法,则如果 B 为透明或半透明,则 A 将处于暂停状态,如果 B 为不透明,则 A 将处于停止状态。我对吗?

    是的

  2. 如果 A Activity 包含 Fragment F,那么如果 A 将进入 Pause 状态,则 F 将进入 Pause 状态,如果 A 将处于 Stop 状态,则 F 也将处于 Stop 状态。我对吗?

    是,对的

  3. 如果 A 调用 B Activity 并且 B 是透明的,则 A 将处于暂停状态,F 也将处于暂停状态。如果 B 调用 finish() 那么 A 将进入 Resume 状态,但 F 会发生什么?它会从暂停中恢复吗?如果是这样,那么如何以及采取什么步骤,因为我没有看到 Fragment 生命周期中的任何直接链接表明 onPause() 到 onResume() 直接作为 Activity 可以做的。

您的理解是正确的,即使在这种情况下,片段也会像活动一样从 onPause 状态移动到 onResume 状态。但不幸的是,在开发人员 android 中没有太多关于此的文档。这可能是因为他们想避免可能会造成更多混乱的复杂图表。

于 2013-12-06T08:14:36.737 回答