哪个Android Fragment生命周期方法需要超级

目前(Android API 17), 在片段上的Android 参考中唯一提到的super是随便通过一些代码示例(不同于活动的Android 参考 ,它仔细注释了super需求)。

所以SObuild议根据需要search网页 ,或者等待崩溃,以确定需要呼叫super位置。 我要求SO用户分享他们关于哪个Fragment生命周期方法需要调用super

片段生命周期方法 – 需要调用super

  • onAttach()
  • onCreate() – 大概是的,因为Activity版本需要它
  • onCreateView() – 似乎没有或没有
  • onActivityCreated()
  • onViewStateRestored()
  • onStart() – 大概是的,作为Activity版本需要它
  • onResume() – 大概是的,因为Activity版本需要它

  • onPause() – 大概是的,因为Activity版本需要它

  • onStop() – 大概是肯定的,因为Activity版本需要它
  • onDestroyView()
  • onDestroy() – 大概是,作为Activity版本需要它
  • onDetach()

  • onSaveInstanceState() – 大概是,作为Activity版本需要它

Solutions Collecting From Web of "哪个Android Fragment生命周期方法需要超级"

除了onSaveInstanceState之外,所有相应的Activity生命周期方法都需要调用super。 此外:

  • onAttach() – 是的
  • onActivityCreated() – 是的
  • onViewStateRestored() – 不是一个片段方法
  • onDestroyView() – 是的
  • onDetach() – 是的
  • onSaveInstanceState() – 从片段#onSaveInstanceState它看起来像一个no

所有需要调用的方法在android.app.Fragment中分享其方法的第一行: mCalled = true;

这样,FragmentManager可以检查mCalled是否为true,并在未调用时抛出SuperNotCalledException。 看到FragmentManager#moveToState看到这个实现。

在使用Eclipse生成片段时,onCreateView方法模板代码没有调用super.onCreateView。 另外,WROX发布的一本相当不错的书:Android 4应用程序开发在其样本生命周期代码中漏掉了它(它不会错过任何其他的超级调用)。

当然,这两个来源可能是不正确的,但使用Eclipse模板,而不是添加super.onCreateView没有造成我的问题。

我用大写字母“O”而不是小写字母“o”

意思是:OnCreate而不是onCreate方法。

这是一个愚蠢的错误,但需要记住:)

谢谢