画面遷移の前に、随所で「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
コメント