Activityとライフサイクル
|Androidのアプリケーション・コンポーネントの一つ、Activity(アクティビティ)について説明します。
Activityの特徴は、視覚的なUIを伴うアプリケーションということです。
コンポーネントにはActivityの他に、3つあり、まとめると以下のようになります。
・視覚的なUIを伴うActivity
・持続的に実行されるService
・システム、他のアプリからの連絡を受け取るブロードキャストレシーバ
・アプリケーション間のデータ交換のためのコンテンツプロバイダ
以下は、Android SDKより、HelloWorld と SpriteTextのスクリーンショットです。
これら難易度が違うデモにも、Activityが関係しています。
「Activityはコンポーネント」と前述で表現しました。これはAndroidのアプリケーションは複数のコンポーネントから構成することが出来るためです。1つのActivity(ちょうど上記のデモのように)から構成しても良いですし、複数のアクティビティの相互呼び出し(Intent)を使って(または別のコンポーネントを使い)画面遷移を行うことも可能です。
ウィンドウ内の視覚的なUIについてはViewという仕組みがありますのですが、また今度…。
(Acitivityを作るための便利なUIパーツは、Android SDKにたくさん用意されています!)
Activityは、そのほかのアプリケーションと連携がとりやすいように、エントリポイントが複数もうけられています。これをライフサイクルと呼びます。
右の図はAndroid開発サイトより引用しました。ライフサイクルの状態遷移を表しています。
楕円の部分がActivityがとることの出来る状態(開始・実行・終了)です。
四角い箱はコールバックメソッドで、状態遷移を行う際に、システムから呼び出されます。呼び出されるタイミングは以下の通りです。
- onCreate():Activityが初めて作成される時
- onRestart():停止した後、開始する直前
- onStart():ユーザーから見える直前
- onResume():フォアグラウンドに表示
- onPause():別のアクティビティを開始
- onStop():アクティビティがユーザーから見えなくなったとき
- onDestroy():アクティビティが破棄される前。最後。
最初は複雑に感じるかもしれませんが、それぞれのコールバックメソッドで必要な処理を書くだけでアプリケーションとして一通りの動作が可能です。アプリケーションを作りやすく(&連携しやすく)なっています。
より興味がわいてきたら以下のサイトをおすすめします。理解が深まります!
・Android developers 開発ガイド:開発の基礎
・Android Docs(初級編) 3.2Activityのライフサイクル
・@IT Androidアプリ作成入門(2)「Androidアプリ作成の基本”Activity”とは何か?」