哪些Android Fragment生命周期方法需要super

don*_*ede 9 android overriding super

目前(Android API 17),片段super Android的参考中唯一提到的是随便通过一些代码示例(不同于Android 上的Activity Reference,它仔细记录了super需要的位置).

因此,建议根据需要搜索网络,或等待崩溃,以确定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版本需要它

use*_*495 5

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

  • onAttach() - 是的
  • onActivityCreated() - 是的
  • onViewStateRestored() - 不是 Fragment 方法
  • onDestroyView() - 是的
  • onDetach() - 是的
  • onSaveInstanceState()- 从Fragment#onSaveInstanceState它看起来像一个不

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

这样 FragmentManager 可以检查 mCalled 是否为真,并在未调用时抛出 SuperNotCalledException。请参阅FragmentManager#moveToState以查看此实现。