ActivityとFragmentに関するメモ
ActivityとFragmentの役割
MVCのControllerに相当する。画面のライフサイクル、UIイベントの管理を行う。特に、Fragmentは再利用可能なUIコンポーネントのまとまりを管理し、Activityに組み込んで使用する。
ライフサイクル
Activityや連動したFragmentにはライフサイクルがあり、状態によって異なるメソッドが呼ばる。Activityのライフサイクル
onCreate:Activityが最初にとる状態。画面の構成(XMLレイアウトのロード)やViewコンポーネントを取り出すなどの処理をする。
onStart:UIのインタラクションの実施準備を行う。
onResume:インタラクションを実施できる状態
onPause:ユーザが画面を離れようとしている状態。必要ならばデータの永続化を行う。
onStop:画面がユーザから見えなくなった状態。この状態で戻ろうとすると、onRestartを経て、onStartの状態へ遷移する。
onDestroy:画面がシステムによってメモリから追放される。参照が残っているとメモリリークが起こる。システムによってプロセスがkillされると、この状態を経ずに、終了する。
Fragment特有のライフサイクル
FragmentはHoneyCombで導入された比較的新しいコンポーネントだが、support.v4 を使用することで、2.x系の端末でも使用することが出来る。onAttach:FragmentがActivityに組み込まれた状態。FragmentがActivityにコールバックを提供する場合、Activityが必要なインターフェースを備えているかどうかをチェックしておく。
onCreate:Fragmentを構築する状態。
onCreateView:FragmentがもつViewを構築する状態。レイアウトXMLをロードして返す。Viewをもたない場合nullを返すことも可能。
onActivityCreated:ActivityのonCreateの処理終了の状態
onStart:FragmentのUIが構築されて、描画された状態
onResume:FragmentのUIが構築・描画され、インタラクション可能な状態
onPause:ユーザが別の画面へ遷移する状態。必要な情報は永続化する。
onStop:Fragmentがユーザに見えない状態
onDestroy:Fragmentがメモリから破棄される直前の状態
onDetach:FragmentがActivityから切り離される状態
AndroidManifestでのActivity宣言
アプリケーションを構成する要素は、application要素の子に指定する。
ランチャーから暗黙的Intentを受け取るActivityの宣言もする。
Activityのレイアウト
setContentViewにレウアウトXMLのIDを渡す。Activityの中で、Fragmentを動的に切り替える
Fragmentを保持する目的のLayoutを用意しておく。
FragmentManagerを使って、FragmentTransactionを取得する。
transactionは、add、replace、remove、commitによって、レイアウトの中身を追加・変更することが出来る。
Fragmentについて注意
初期化の際、コンストラクタやsetterでデータを受け渡してはならない。Fragmentの復旧時デフォルトのコンスタラクタしか呼ばれないからである。練習
・各状態をToast表示して確認してみると良い。・ActivityにFragmentを組み込むと良い。レイアウトXMLを作成すれば、簡単に画面の切り替えが出来ることを確認すると良い。
0 件のコメント:
コメントを投稿