2010年9月4日土曜日

Android アクティビティとは?

自動生成されたHelleWorld.javaのコードです。
package yan.android.helloworld;
import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
    }
}

HelloWorldクラスはActivityクラスを継承しています。
Activityとは、"Androidアプリの画面”に相当します。
onCreateメソッドは画面が起動されると呼び出されるメソッドです。

他にも画面が終了したとき、バックグランドに移動したとき、画面を回転させた時などに呼び出されるメソッドがあります。
これらを確認するために、下記のメソッドをオーバーライドしてみます。

Eclipseのメニュー「ソース」→「メソッドのオーバーライド/実装」を選択し
これらのメソッドをチェックONにします
onCreate
onStart
onResume
onPause
onStop
onDestroy

各メソッドはメソッド名を表示するコードを書きます。
Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT).show();

package yan.android.helloworld;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class HelloWorld extends Activity {
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Toast.makeText(this, "onCreate", Toast.LENGTH_SHORT ).show();
    }

 @Override
 protected void onDestroy() {
  // TODO 自動生成されたメソッド・スタブ
  super.onDestroy();
        Toast.makeText(this, "onDestroy", Toast.LENGTH_SHORT ).show();
 }

 @Override
 protected void onPause() {
  // TODO 自動生成されたメソッド・スタブ
  super.onPause();
        Toast.makeText(this, "onPause", Toast.LENGTH_SHORT ).show();
 }

 @Override
 protected void onRestart() {
  // TODO 自動生成されたメソッド・スタブ
  super.onRestart();
        Toast.makeText(this, "onRestart", Toast.LENGTH_SHORT ).show();
 }

 @Override
 protected void onResume() {
  // TODO 自動生成されたメソッド・スタブ
  super.onResume();
        Toast.makeText(this, "onResume", Toast.LENGTH_SHORT ).show();
 }

 @Override
 protected void onStart() {
  // TODO 自動生成されたメソッド・スタブ
  super.onStart();
        Toast.makeText(this, "onStart", Toast.LENGTH_SHORT ).show();
 }

 @Override
 protected void onStop() {
  // TODO 自動生成されたメソッド・スタブ
  super.onStop();
        Toast.makeText(this, "onStop", Toast.LENGTH_SHORT ).show();
 }
}

アプリを実行するとonCreate、onStart、onResumeの順番に表示されます。

ここでホームボタンを押して待ち受け画面になり、onPause、onStopが表示されます。

アプリを再度表示するとonRestart、onStart、onResume、(onDestroy)が表示されます。

このようにActivityには色々な状態があります。
onCreate()・・・アクティビティの生成時に呼ばれる
onStart()・・・アクティビティの表示が開始されたときに呼ばれる
onRestart()・・・停止状態からの表示再開に遷移するときに呼ばれる
onResume()・・・ユーザの操作受付を開始したときに呼ばれる
onPause()・・・ユーザの操作受付を中断したときに呼ばれる
onStop()・・・アクティビティの票ぞを中断したときに呼ばれる
onDestroy()・・・アクティビティが破棄されたときに呼ばれる

0 件のコメント: