カテゴリー:
コンポーネント
閲覧数:404 配信日:2013-04-16 10:36
起動
・アプリケーションが起動すると、まず指定されたActivityサブクラスのオブジェクトが、Androidのフレームワークによって生成される
サイクル
・複数の処理を同時に実行できるが、画面の最前面に表示されるアプリケーションは1つだけという決まりがある
・そのため、「作成時」「最前面になったとき」「そうでなくなったとき」「不可視になったとき」など、アプリケーションはさまざまな状態へと変化していく
例
1.起動 … onCreate()
2.開始 … onStart()
3.アクテイィビティ前面表示 … onResume()
― アクティビティ実行中 ―
4.アクティビティが前面でなくなる … onPause()
5.停止 … onStop()
6.破棄 … onDestroy()
Activityクラスのメソッド
振る舞い/処理フロー概要
・アプリケーション起動や終了、あるいは画面の回転などに応じて、指定されたものが順番に呼び出される
・上図はあくまでイメージ
・実際に確認する方法の一つとしては、onRestart()、onStart()、onResume()、onPause()メソッドなどをオーバーライドして、System.out.println("onPause()が呼び出された!");などとデバッグ表記すれば良い
・ちなみに、System.out.printlnは、EclipseのLogCatビューに表示される(Android画面には表示されない)
・なお、LogCatビュー利用時には、フィルターを作成して表示行を絞り込むと良い(そうしないと、あらゆるログ出力が表示されるため、目的の表示が埋もれてしまう)
・フィルターを作成するには、LogCatビューにある+アイコンをクリック
・以下、実際にプロセスID(pid)→220でフィルタリングした例
04-02 02:02:30.658: INFO/System.out(220): onStart()が呼び出された!
04-02 02:02:30.658: INFO/System.out(220): onResume()が呼び出された!
04-02 02:02:30.668: DEBUG/ddm-heap(220): Got feature list request
04-02 02:03:27.878: INFO/System.out(220): onPause()が呼び出された!
04-02 02:26:58.227: INFO/System.out(220): onRestart()が呼び出された!
04-02 02:26:58.239: INFO/System.out(220): onStart()が呼び出された!
04-02 02:26:58.239: INFO/System.out(220): onResume()が呼び出された!
04-02 02:27:18.458: INFO/System.out(220): onPause()が呼び出された!
04-02 02:27:24.007: DEBUG/dalvikvm(220): GC freed 597 objects / 51312 bytes in 133ms
04-02 02:27:35.068: INFO/System.out(220): onRestart()が呼び出された!
04-02 02:27:35.068: INFO/System.out(220): onStart()が呼び出された!
04-02 02:27:35.068: INFO/System.out(220): onResume()が呼び出された!
04-02 02:27:43.167: INFO/System.out(220): onPause()が呼び出された!
・自分でエミュレータを触りながら、例えば、「HelloWorld」サンプルプログラムでも表示したり非表示にしたりしてみると、イメージが掴みやすい
・アクティビティがフォアグラウンドに表示される場合は、必ずonStart() → onResume() となることなどが、自分で確認できる
エラーの種類
・参考
タイプ | Log出力方法 | ログの意味 |
---|---|---|
V | Log.v(TAG, "VERBOSE") | 簡易メッセージ |
D | Log.d(TAG, "DEBUG") | デバッグメッセージ |
I | Log.i(TAG, "INFO") | 情報 |
W | Log.w(TAG, "WARNING") | 警告 |
E | Log.e(TAG, "ERROR") | 致命的エラー |