アクティビティとは、操作ユーザとアプリケーションで行われるやり取り(イベント)を仲介する仕組みです。
ユーザにUI(インターフェース)を提供したり、ユーザからの入力(イベント)に応答するといった、表示画面毎もしくはUI部品やウィジェットごとに対する処理となります。
基本的には、1つの画面を表現することに1つのアクティビティが紐づくといえます。
アクティビティは表示している画面状況によって、自分自身の状況を判断して状態を遷移します。
Androidではメモリなどのハードウェアリソースをアプリケーションで管理しない仕様となっています。
このことから、システムが不要であると判断したアクティビティは、処理中であってもシステムに殺されてしまうといったことが発生します。
アプリケーションはアクティビティに応じた処理を適切に行わなければ、予期せぬ動作となってしまいます。
画面の最前にいるアクティビティです。
重要度の高いアクティビティであり、KILLされることはありません。
別アクティビティが存在しているなどでフォーカスを失っているが、画面に見えている状態のアクティビティです。
システムエラー(メモリ不足など)の場合にはKILLされます。
別アクティビティに隠れて、画面に見えていない状態のアクティビティです。。
メモリが必要になった時にKILLされます。
アクティビティのインスタンスが作成されてから破棄されるまでのサイクルをライフサイクルと呼びます。
アクティビティは状態遷移し、以下の関数が呼ばれます。
[開始]-->[onCreate]-->[onStart] -->[onPause]-->[onResume] -->[onStop ]-->[onRestart] -->[onDestroy]-->[終了]
package com.test.android.testsample; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.res.Configuration; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; public class SampleActivity extends Activity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); Log.v("EXAMPLE", "onCreate was called."); setContentView(R.layout.main); } @Override protected void onStart() { super.onStart(); Log.v("EXAMPLE", "onStart was called."); } @Override protected void onRestart() { super.onRestart(); Log.v("EXAMPLE", "onRestart was called."); } @Override protected void onResume() { super.onResume(); Log.v("EXAMPLE", "onResume was called."); } @Override protected void onPause() { super.onPause(); Log.v("EXAMPLE", "onPause was called."); } @Override protected void onStop() { super.onStop(); Log.v("EXAMPLE", "onStop was called."); } @Override protected void onDestroy() { super.onDestroy(); Log.v("EXAMPLE", "onDestroy was called."); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); Log.v("EXAMPLE", "onConfigurationChanged was called."); } }