片段和父母活动生命周期在一起

时间:2012-10-11 06:55:08

标签: android android-fragments android-activity

我正在关注这四个主题Creating a FragmentHandling the Fragment LifecycleManaging the Activity LifecyclePausing and Resuming an Activity。所以我对此有点怀疑。 我的问题是

  1. 如果A Activity通过Activity致电B Intent,但A不会调用finish()方法,那么如果B为{{,则A将处于Pause状态如果B为Transparent,则1}}或SemiTransparent以及Stop状态。我是对的吗?
  2. 如果A Opaque包含Activity F,那么如果A将进入Fragment状态,那么F将进入Pause状态,如果A将进入Pause状态}状态然后F也将处于Stop状态。我是对的吗?
  3. 如果A呼叫B Stop且B为Activity,则A将处于Transparent状态,F也将处于Pause状态。如果B调用finish(),则A将进入Resume状态,但F会发生什么?它会从暂停中恢复吗?如果是,那么步骤是什么以及步骤是什么,因为我在Fragment生命周期中没有看到任何与onPause() onResume()直接相关的直接链接,因为活动可以做到。

      

    希望我能问我想要什么。对不起我的坏Englsh。

  4.   

2 个答案:

答案 0 :(得分:3)

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

      

    暂停

         

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

  2. 是的,你是对的:

      

    片段直接生活的活动的生命周期   影响片段的生命周期,例如每个生命周期   对活动的回调导致每个回调的类似回调   分段。例如,当活动收到onPause()时,每个   活动中的片段接收onPause()。

    然而,相反的情况并非如此,这意味着如果片段接收onStop,则不能保证将调用Activity的onStop。

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

      

    public void onResume()

         

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

    它通常是因为它取决于活动如何处理片段。

答案 1 :(得分:0)

  1. 如果A Activity通过Intent调用B Activity但是A不调用finish()方法,那么如果B是透明或半透明,则A将处于暂停状态,如果B是不透明,则处于停止状态。我是对的吗?

    是的

  2. 如果A活动包含片段F,那么如果A将进入暂停状态,则F将进入暂停状态,如果A将处于停止状态,则F也将处于停止状态。我是对的吗?

    是的正确

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

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