フラグメントはアクティビティに依存して存在する必要があるため、アクティビティのライフサイクルはフラグメントのライフサイクルに直接影響します。公式 Web サイトのこの図は、この 2 つの関係を非常によく示しています:
Fragment には、Activity よりもいくつかの追加のライフサイクル コールバック関数があることがわかります:
onAttach(Activity); //当Activity与Fragment发生关联时调用 onCreateView(LayoutInflater,ViewGroup,Bundle); //创建该Fragment的视图 onActivityCreate(bundle); //当Activity的onCreate();方法返回时调用 onDestoryView(); //与onCreateView相对应,当改Fragment被移除时调用 onDetach(); //与onAttach()相对应,当Fragment与Activity的关联被取消时调用
注: onCreateView を除く他のすべてのメソッドは、オーバーライドするには、このメソッドの親クラスの実装を呼び出す必要があります。
シーンデモ:
このフラグメントに切り替える
11-29 14:26:35.095: D/AppListFragment(7649): onAttach 11-29 14:26:35.095: D/AppListFragment(7649): onCreate 11-29 14:26:35.095: D/AppListFragment(7649): onCreateView 11-29 14:26:35.100: D/AppListFragment(7649): onActivityCreated 11-29 14:26:35.120: D/AppListFragment(7649): onStart 11-29 14:26:35.120: D/AppListFragment(7649): onResume
画面オフ:
11-29 14:27:35.185: D/AppListFragment(7649): onPause 11-29 14:27:35.205: D/AppListFragment(7649): onSaveInstanceState 11-29 14:27:35.205: D/AppListFragment(7649): onStop
画面のロックを解除
11-29 14:33:13.240: D/AppListFragment(7649): onStart 11-29 14:33:13.275: D/AppListFragment(7649): onResume
他のフラグメントに切り替える:
11-29 14:33:33.655: D/AppListFragment(7649): onPause 11-29 14:33:33.655: D/AppListFragment(7649): onStop 11-29 14:33:33.660: D/AppListFragment(7649): onDestroyView
元のフラグメントに切り替える:
11-29 14:33:55.820: D/AppListFragment(7649): onCreateView 11-29 14:33:55.825: D/AppListFragment(7649): onActivityCreated 11-29 14:33:55.825: D/AppListFragment(7649): onStart 11-29 14:33:55.825: D/AppListFragment(7649): onResume
デスクトップに戻る
11-29 14:34:26.590: D/AppListFragment(7649): onPause 11-29 14:34:26.880: D/AppListFragment(7649): onSaveInstanceState 11-29 14:34:26.880: D/AppListFragment(7649): onStop
アプリケーションに戻る
11-29 14:36:51.940: D/AppListFragment(7649): onStart 11-29 14:36:51.940: D/AppListFragment(7649): onResume
アプリケーションを終了する
11-29 14:37:03.020: D/AppListFragment(7649): onPause 11-29 14:37:03.155: D/AppListFragment(7649): onStop 11-29 14:37:03.155: D/AppListFragment(7649): onDestroyView 11-29 14:37:03.165: D/AppListFragment(7649): onDestroy 11-29 14:37:03.165: D/AppListFragment(7649): onDetach
アクティビティと完全に接続されています。それの利点。
Android のフラグメントとアクティビティのライフサイクル比較に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。