AndroidのActivityのライフサイクル

4190 ワード

Activityライフサイクル:システム内でActivityはActivityスタックによって管理され、新しいActivityが起動するとスタックの上部に配置され、実行中のActivityとなり、前のActivityはスタックに保持され、新しいActivityが終了するまでフロントに配置されません.Activityには4つの本質的な違いがある:スクリーンフロント(スタックトップ)で、アクティブ状態または実行状態(active or running)と呼ばれている.Acrivityがフォーカスを失ったが、依然として表示されている(新しい非フルスクリーンのActivityまたは透明なActivityがスタックの上部に配置されている)場合は、一時停止状態(Paused)と呼ばれます.一時停止状態のActivityは依然として活気を保っている(すべての状態、メンバー情報、ウィンドウマネージャと接続を維持している)が、システムが極端に低下している間に殺される.あるActivityが別のActivityによって完全に上書きされた場合、停止状態(Stopped)と呼ばれます.すべてのステータスとメンバー情報を保持しますが、表示されないため、ウィンドウが隠され、メモリが不足しているときにシステムに消去されます.Androidシステムは、Activityの終了を要求するか、プロセスを直接オフにするかの2つの方法で削除されます.Activityが再びユーザーに表示される場合は、前の状態を再開してリセットする必要があります.ライフサイクルのサイクルには3つの重要な問題があります.1、ライフサイクル全体:onCreate(Bundle);onDestroy()に始まります.終わります.ActivityはonCreate(Bundle)ですべてのグローバル状態をonDestroy()に設定し、すべてのリソースを解放します.2、見えるライフサイクル:onStrat()から;onStop()に開始します.終わります.この間、Activityはフロントにいない可能性があるにもかかわらず、ユーザーと対話できない画面に表示されます.この2つのインタフェースの間には、ユーザに表示されるUIデータやリソースなどを保持する必要がある.3、フロントのライフサイクル:onResume();onPause()に開始します.最後に,この間,このActivityはすべてのActivityの先頭にあり,ユーザと対話する.Activityはresumedとpaused状態の間を頻繁に切り替えることができる.次のインタフェースは、Activityのライフサイクル全体のメソッドを定義します.
	public class Activity extends ApplicationContext{
		protected void onCreate(Bundle icicle);
		protected void onStart();
		protected void onRestart();
		protected void onResume();
		protected void onFreeze(Bundle outIcicle);
		protected void onPause();
		protected void onStop();
		protected void onDestroy();
	
	}

//        
package com.example.lifetcycle;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

/* Activity     ,      */
public class MainActivity extends Activity {

	/*    activity,              UI */
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Log.i("MainActivity", "  :onCreate()");
		
		/*     ,Activity         */
		Button btn = (Button) findViewById(R.id.btn);
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this,SecondActivity.class);
				startActivity(intent);
			}
		});
		
	}

	/*      */
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Log.i("MainActivity", "  :onStart()");
	}

	/*     */
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		Log.i("MainActivity", "  :onRestart()");
	}

	/*    */
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.i("MainActivity", "  :onResume()");
	}

	/*      *//*        activity     */
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		Log.i("MainActivity", "  :onPause()");
	}
	
	/*      */
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.i("MainActivity", "  :onStop()");
	}
	
	/*      */
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.i("MainActivity", "  :onDestroy()");
	}



}




要求されたActivity:
import android.app.Activity;
import android.os.Bundle;

public class SecondActivity extends Activity {

	/*         */
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}
	
}