Android: LogCatでActivityの状態遷移を動作確認

AndroidのActivityの状態遷移をLogクラスのメソッドでログに記録し、それをLogCatで確認してみました。

  

[Activityについて]
http://developer.android.com/guide/topics/fundamentals/activities.html

上記URLにActivityについての説明、その状態遷移の説明、Activity生成についての説明があります。以下、抜粋して引用。

An Activity is an application component that provides a screen with which users can interact.....

An application usually consists of multiple activities that are loosely bound to each other. Typically, one activity in an application is specified as the "main" activity, which is presented to the user when launching the application for the first time. Each activity can then start another activity in order to perform different actions. Each time a new activity starts, the previous activity is stopped, but the system preserves the activity in a stack.....

When an activity is stopped because a new activity starts, it is notified of this change in state through the activity's lifecycle callback methods. .....

 Figure 1. The activity lifecycle
 ( http://developer.android.com/guide/topics/fundamentals/activities.html のFigure 1より )
  

 Activityクラスの説明
 http://developer.android.com/reference/android/app/Activity.html

[ログについて]
http://developer.android.com/reference/android/util/Log.html

[Eclipseでの手順(以下、一例です)]

1. スケルトンプロジェクトをActivityStatusというプロジェクト名で新規に作成
2. ActivityStatusActivity.javaにLogクラスのメソッド( Log.v(), Log.i(), Log.w() )を追加
  注) プロジェクト作成時にクラス名をActivityStatusActivityとしたので。このページの末尾のコード例を参照。
3. パッケージ・エクスプローラーからプロジェクトActivityStatusを選びマウスの右ボタンを押す
 メニューから[デバッグ] => [Androidアプリケーション] => エミュレータを選択し[OK]を押す
4. [ウインドウ]メニュー => [パースペクティブを開く] => [デバッグ]
5. [ホーム]ボタン、[戻る]ボタン、アプリケーションアイコン(ActivityStatus)を操作し、LogCatウインドウに表示されるログを確認する
 この時、タグ名(この例ではActivityStatus)でフィルタすると見たいログだけが表示されるので便利。


ActivityStatus起動時の表示(スケルトンの実行時と表示は同じ)
  

[ 初期起動時 ]: => onCreate() => onStart() => onResume()

[ホーム]ボタンを押す: => onPause() => onStop()

アプリケーションアイコンをクリック: => onRestart() => onStart() => onResume()

[戻る]ボタンを押す: => onPause() => onStop() => onDestroy()


例) ActivityStatusActivity.java
http://developer.android.com/guide/topics/fundamentals/activities.html のページの Implementing the lifecycle callbacks のサンプルコードを参考に、コールバックメソッドの呼び出しの後にLogクラスのメソッド呼び出しを1行づつ追加しただけです。

package jp.knowd.ActivityStatus;

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

public class ActivityStatusActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.v("ActivityStatus", "onCreate() is called!");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.v("ActivityStatus", "onStart() is called!");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.v("ActivityStatus", "onRestart() is called!");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.v("ActivityStatus", "onResume() is called!");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("ActivityStatus", "onPause() is called!");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("ActivityStatus", "onStop() is called");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.w("ActivityStatus", "onDestroy() is calld!");
    }
}