android-activityについて



Activityとは

アクティビティとは、操作ユーザとアプリケーションで行われるやり取り(イベント)を仲介する仕組みです。

ユーザにUI(インターフェース)を提供したり、ユーザからの入力(イベント)に応答するといった、表示画面毎もしくはUI部品やウィジェットごとに対する処理となります。

基本的には、1つの画面を表現することに1つのアクティビティが紐づくといえます。


アクティビティの状態

アクティビティは表示している画面状況によって、自分自身の状況を判断して状態を遷移します。

Androidではメモリなどのハードウェアリソースをアプリケーションで管理しない仕様となっています。

このことから、システムが不要であると判断したアクティビティは、処理中であってもシステムに殺されてしまうといったことが発生します。

アプリケーションはアクティビティに応じた処理を適切に行わなければ、予期せぬ動作となってしまいます。


フォアグラウンド アクティビティ (foreground activity)

画面の最前にいるアクティビティです。

重要度の高いアクティビティであり、KILLされることはありません。


ビジブル アクティビティ (visible activity)

別アクティビティが存在しているなどでフォーカスを失っているが、画面に見えている状態のアクティビティです。

システムエラー(メモリ不足など)の場合にはKILLされます。


バックグラウンド アクティビティ (background activity)

別アクティビティに隠れて、画面に見えていない状態のアクティビティです。。

メモリが必要になった時に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.");
  }
}

関連

android





スポンサード リンク