X

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”とは何か?」

mhidaka: Software Engineerだよ。DroidKaigi Organizer / Androidと組込とRe:VIEW。techbooster主宰。mhidaka's writings http://booklog.jp/users/mhidaka 技術書典! http://techbookfest.org
Related Post