-1
我在Activity的onCreate()方法中在运行时附加了一个片段。我想了解片段上生命周期方法调用的顺序。然而,行为似乎与预期不符。我正在做一个屏幕旋转来理解这一点。以下是屏幕旋转后的日志。在怀疑的地方把标记放在日志中。 有人可以解释这里发生了什么吗?片段生命周期方法序列
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(tag, "OnCreate()");
if (savedInstanceState != null) {
Log.d(tag, "SaveInstanceState is NOT NULL");
}
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
mainFragment = new MainFragment();
fm.beginTransaction().add(R.id.fragment_container, mainFragment, "MainFragment").commit();
}
MainFragment﹕ OnDestroy
MainFragment﹕ OnDetach
MainActivity﹕ OnDestroy
MainFragment﹕ onAttach() <<< Getting called before Activity's onCreate()
MainActivity﹕ OnCreate()
MainActivity﹕ SaveInstanceState is NOT NULL
MainFragment﹕ onCreateView()
MainFragment﹕ SaveInstanceState is NOT NULL
MainFragment﹕ onAttach() <<<<<< onAttach() on Fragment called again
MainFragment﹕ onCreateView() <<<<<<< onCreateView() on Fragment again.