知らずに作って大丈夫?Androidの基本的なライフサイクルイベント31選:実業務でちゃんと使えるAndroidアプリ開発入門(2)(3/4 ページ)
本連載では、バージョンの違いに左右されないスタンダードなアーキテクチャで実業務で使えるAndroidアプリ開発のノウハウを提供していきます。今回は、Androidアプリ開発において必ず押さえておかなければならないライフサイクルイベントについて解説します。
Fragmentの主要な15のライフサイクルイベント
以下はFragmentライフサイクルの状態遷移図です。
この状態遷移図に加筆したものが以下です。
ライフサイクルイベントとしてonInflate()、onViewCreated()、onViewStateRestored()、onSaveInstanceState()を追加しています。追加したものを含め、Fragmentのライフサイクルイベントを説明します。
onInflate()
onInflate()はFragmentが「レイアウトXML」に配置された場合に呼び出されるライフサイクルイベントです。FragmentがレイアウトXMLに配置されていない場合は呼び出されません。レイアウトに配置した場合、動的に配置する場合に渡せるFragmentへの引数が渡せません。代わりにAttributeSetを使用してレイアウトXMLから属性を渡すことで、Fragmentの挙動を制御します。
onAttach()とonDetach()
onAttach()は、ContextにFragmentがアタッチされた際に呼び出されるライフサイクルイベントです。このタイミング以降でActivityなどのContextを参照することが可能になります。
対応するonDetach()はContextからデタッチされた際に呼び出されます。
onCreate()とonDestroy()
onCreate()はFragmentが生成される際に呼び出されるライフサイクルイベントです。ActivityのonCreate()同様、そのFragmentが生存する間必要な処理を初期化します。Fragmentの状態がsavedInstanceStateとして引数で渡されてきますが、この時点ではViewの生成がまだ終わっていないので、状態の復元をするのはお勧めしません。
対応するonDestroy()はFragmentが破棄されるタイミングで呼び出されます。こちらはonCreate()で行った処理の後始末を行います。
onCreateView()とonDestroyView()
onCreateView()は、このFragmentのメインコンテンツとなるViewを生成して返す必要があるライフサイクルイベントです。ここではViewを生成して返すだけにとどめ、Viewの初期化はonViewCreated()で行います。このメソッドにもsavedInstanceStateでFragmentの状態が渡されてきますが、ここでも復元は行いません。
対応するonDestroyView()はViewが破棄される際に呼び出されます。onDestroyView()では特に行うことはないと思います。
onViewCreated()
onViewCreated()は、このFragmentのViewが生成された後に呼び出されます。Viewの初期化とFragmentの状態の復元はここで行うことを推奨します。
onActivityCreated()
onActivityCreated()は、このFragmentが属するActivityのonCreate()が完了した際に呼び出されるライフサイクルイベントです。Activityの生成が完了した時点で行いたい処理はここに記述します。
onViewStateRestored()
onViewStateRestored()は、このFragmentが持つViewの状態が全て復元された際に呼び出されるライフサイクルイベントです。Viewの状態を横断的にチェックしたり更新したりする必要がある場合はここで行います。このメソッドにもsavedInstanceStateとしてFragmentの状態が渡されてきますが、このメソッド名が示す通り、ここで状態を復元するのは推奨できません。
onStart()とonStop()
onStart()は、Fragmentが表示される前に呼び出されるライフサイクルイベントです。
対応するonStop()はFragmentが非表示になった際に呼び出されます。
onResume()とonPause()
onResume()はFragmentがユーザー操作を行えるようになる直前に呼び出されるライフサイクルイベントです。
対応するonPause()はユーザー操作が行えなくなった際に呼び出されます。
onSaveInstanceState()
onSaveInstanceState()はFragmentの状態を保存するタイミングで呼び出されるライフサイクルイベントです。ここでFragmentの状態を保存します。Fragmentの状態が保存できるタイミングは、ここだけです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Android N」の開発者向けプレビューが公開
米グーグルは、Androidの次期版「Nリリース」の開発者向けプレビューを公開した。 - JVMとAndroid用のオープンソースプログラミング言語「Kotlin 1.0」がリリース
JetBrainsが主導して開発を進めるJVMとAndroid用のオープンソースプログラミング言語の正式版がリリース。既存のコードやインフラとの相互運用性を重視した実用的なプログラミング言語だという。 - Androidアプリ向け統合開発環境「Android Studio 2.0」β版が公開
米グーグルが、Androidアプリ向け統合開発環境(IDE)の最新版「Android Studio 2.0」のβ版を発表した。