【Androidアプリ開発】アクティビティのライフサイクル

画面遷移の前に、随所で「Androidアプリのキモ」と言われているアクティビティのライフサイクルを見てみます。

今回は以下の内容で新規プロジェクトを作成しました。

  • プロジェクト名:ActivityTest
  • ビルド・ターゲット:Android 2.1-update1
  • アプリケーション名:ActivityTest
  • パッケージ名:com.example.activitytest
  • Create Activity:MainActivity
  • Min SDK Version:7

MainActivity.javaを編集します。

package com.example.activitytest;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {
    private static final String LOG_TAG = “ActivityTest”;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    	Log.v(LOG_TAG, “onCreate”);
    }

    @Override
    protected void onStart() {
    	super.onStart();
    	Log.v(LOG_TAG, “onStart”);
    }

    @Override
    protected void onResume() {
    	super.onResume();
    	Log.v(LOG_TAG, “onResume”);
    }

    @Override
    protected void onPause() {
    	super.onPause();
    	Log.v(LOG_TAG, “onPause”);
    }

    @Override
    protected void onStop() {
    	super.onStop();
    	Log.v(LOG_TAG, “onStop”);
    }

    @Override
    protected void onDestroy() {
    	super.onDestroy();
    	Log.v(LOG_TAG, “onDestroy”);
    }

    @Override
    protected void onRestart() {
    	super.onRestart();
    	Log.v(LOG_TAG, “onRestart”);
    }
}

Activityの直訳は「活動」なので、Activityクラスはアプリケーションの活動状態を変更および保持するものだと想像できます。
Activityクラスの関数がどのように呼ばれるかを、デバッグモードで見ていきます。

まず、プロジェクトを右クリックして「デバッグ」→「Android アプリケーション」を選択します。

エミュレータが起動したら、Eclipseのメニューから「ウィンドウ」→「パースペクティブを開く」→「デバッグ」を選択します。

LogCatビューの緑の十字ボタン(フィルターの作成)をクリックします。

「by Log Tag」に「ActivityTest」を入力します。
「フィルター名」は何でもいいんですが、ここでは「TAG」としました。
「OK」ボタンをクリックします。

エミュレータに戻り、電話ボタンを押して電話アプリケーションを起動します。

「戻る」ボタンを押して電話アプリケーションを終了し、ActivityTestアプリケーションに戻ります。

再度「戻る」ボタンを押してActivityTestアプリケーションを終了し、ホーム画面を表示します。

これら一連の操作で、ログは以下のようになりました。
※で始まる行は説明のために追加したものです。

※ActivityTestアプリケーション起動
03-23 12:30:11.322: VERBOSE/ActivityTest(241): onCreate
03-23 12:30:11.322: VERBOSE/ActivityTest(241): onStart
03-23 12:30:11.322: VERBOSE/ActivityTest(241): onResume
※電話アプリケーション起動
03-23 12:31:13.142: VERBOSE/ActivityTest(241): onPause
03-23 12:31:13.852: VERBOSE/ActivityTest(241): onStop
※電話アプリケーション終了
03-23 12:32:10.411: VERBOSE/ActivityTest(241): onRestart
03-23 12:32:10.421: VERBOSE/ActivityTest(241): onStart
03-23 12:32:10.441: VERBOSE/ActivityTest(241): onResume
※ActivityTestアプリケーション終了
03-23 12:33:15.862: VERBOSE/ActivityTest(241): onPause
03-23 12:33:16.662: VERBOSE/ActivityTest(241): onStop
03-23 12:33:16.672: VERBOSE/ActivityTest(241): onDestroy

参考:アクティビティのライフサイクル@Android Developers

コメント

タイトルとURLをコピーしました