Android活动和片段生命周期

Android活动和片段生命周期,android,android-lifecycle,Android,Android Lifecycle,这提供了活动和片段生命周期的可视化。 但它并没有真正提到从活动触发片段时的整个生命周期。 有人能解释一下,当用户更改设备方向时,将触发什么样的方法序列(片段和活动)? 这将是顺序: 片段。暂停 Fragment.onSaveInstance Fragment.onStop Fragment.ondestory Activity.onPause Activity.onSaveInstance Activity.onStop 活动.故事 再次创建活动。。。跑步 片段再次创建。。。跑步 刚刚创建了一个

这提供了活动和片段生命周期的可视化。 但它并没有真正提到从活动触发片段时的整个生命周期。 有人能解释一下,当用户更改设备方向时,将触发什么样的方法序列(片段和活动)? 这将是顺序:

  • 片段。暂停
  • Fragment.onSaveInstance
  • Fragment.onStop
  • Fragment.ondestory
  • Activity.onPause
  • Activity.onSaveInstance
  • Activity.onStop
  • 活动.故事
  • 再次创建活动。。。跑步
  • 片段再次创建。。。跑步

  • 刚刚创建了一个示例并为您进行了测试。我在MainActivity onCreate中附加了一个占位符片段

    当用户更改方向时,调用堆栈:

    07-09 15:47:59.932: I/System.out(9756): Fragment onPause
    07-09 15:47:59.952: I/System.out(9756): Activity onPause
    07-09 15:47:59.952: I/System.out(9756): Activity onSaveInstanceState
    07-09 15:47:59.952: I/System.out(9756): Fragment onStop
    07-09 15:47:59.952: I/System.out(9756): Activity onStop
    07-09 15:47:59.952: I/System.out(9756): Fragment onDestroyView
    07-09 15:47:59.952: I/System.out(9756): Fragment onDestroy
    07-09 15:47:59.952: I/System.out(9756): Fragment onDetach
    07-09 15:47:59.972: I/System.out(9756): Activity onDestroy
    07-09 15:48:00.072: I/System.out(9756): Fragment onAttach
    07-09 15:48:00.072: I/System.out(9756): Fragment onCreate
    07-09 15:48:00.172: I/System.out(9756): Activity onCreate
    07-09 15:48:00.172: I/System.out(9756): Fragment onCreateView
    07-09 15:48:00.172: I/System.out(9756): Fragment onActivityCreated
    07-09 15:48:00.172: I/System.out(9756): Fragment onStart
    07-09 15:48:00.172: I/System.out(9756): Activity onStart
    07-09 15:48:00.182: I/System.out(9756): Activity onResume
    07-09 15:48:00.182: I/System.out(9756): Fragment onResume
    
    我还附上了下面的代码,以防你想用它进行实验。(编辑:请参见前面的代码编辑)


    另外,《Android开发者指南》对和也有很好的解释。

    我以前做过,但序列对我来说没有意义。例如,首先创建片段,然后仅创建活动。您介意进一步解释一下吗?@user970307,这是我的解释,
    Activity onCreate()
    在创建活动时被调用,这意味着在创建活动中的组件后,应用程序会向此函数发送一条消息。我是什么意思
    getSupportFragmentManager()
    FragmentManager
    作为
    MainActivity
    (FragmentActivity)的组件提供,并且
    Placeholder Fragment
    FragmentManager
    操作。所以整个
    PlaceholderFragment
    生命周期都存在于
    MainActivity
    的上下文中。如上所述,在MainActivity之前调用(作为组件)
    onCreated
    的片段是合理的。还要注意的是,
    placeholder fragment
    类实例即使在
    onDestroy
    之后也驻留在FragmentManager的片段中
    onCreate
    标记片段的创建,它应该与构造或初始化区分开来。