Activity生命周期(一)

这里用一个实例来说明生命周期的变化,代码结构大致是这样,两个Activity分别为MainActivity、FirstActivity,在MainActivity中可以跳转到FirstActivity,两个Activity都覆盖了常见的生命周期方法,如下:
1 onCreate 
2 onRestart 
3 onStart 
4 onResume 
5 onPause 
6 onSaveInstanceState 
7 onRestoreInstanceState
8 onStop 
9 onDestory
下面是代码,直接看注释即可明白:
public class MainActivity extends Activity {

	private String TAG = "MainActivity";
	private Button goBtn = null;

	
	/**
	 * 系列变化一:与其它应用相关
	 * 1 正常启动MainActivity时,MainActivity的生命周期: onCreate -> onStart -> onResume
	 * 2 通过任务管理器导航到其它应用时,MainActivity的生命周期: onPause -> onSaveInstanceState -> onStop
	 * 3 再通过任务管理器导航到MainActivity时,MainActivity的生命周期:onRestart -> onStart -> onResume
	 * 
	 * 系列变化二:当前应用内部跳转
	 * 1 启动FirstActivity时,这时涉及到两个Activity,即MainActivity、FirstActivity:
	 *    (1)MainActivity的生命周期: onPause -> [onSaveInstanceState -> onStop]
	 *    (2)FirstActivity的生命周期:onCreate -> onStart -> onResume,此生命周期介于(1)中的onPause和onSaveInstanceState
	 *    之间。
	 * 2 从FirstActivityr返回到MainActivity,这时也涉及到两个Activity,即MainActivity、FirstActivity:
	 *    (1)FirstActivity的生命周期: onPause -> [onStop -> onDestory]
	 *    (2)MainActivity的生命周期:onRestart -> onStart -> onResume,此生命周期介于(1)中的onPause和onStop之间。
	 * 3 在MainActivity按返回键时,MainActivity的生命周期: onPause -> onStop -> onDestory
	 * 
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.v(TAG, "onCreate");
		setContentView(R.layout.activity_main);
		findWidget();
		initWidget();
		setListener();
	}

	private void findWidget() {
		goBtn = (Button) this.findViewById(R.id.go);
	}
	private void initWidget() {}
	
	private void setListener() {
		goBtn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this, FirstActivity.class);
				MainActivity.this.startActivity(intent);
			}
		});
	}
	
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.v(TAG, "onRestart");
	}
	@Override
	protected void onStart() {
		super.onStart();
		Log.v(TAG, "onStart");
	}

	@Override
	protected void onResume() {
		super.onResume();
		Log.v(TAG, "onResume");
		
	}



	@Override
	protected void onPause() {
		super.onPause();
		Log.v(TAG, "onPause");
	}
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		Log.v(TAG, "onSaveInstanceState");
	}
	@Override
	protected void onStop() {
		super.onStop();
		Log.v(TAG, "onStop");
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.v(TAG, "onDestroy");
	}




	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState) {
		super.onRestoreInstanceState(savedInstanceState);
		Log.v(TAG, "onRestoreInstanceState");
	}



}

  FirstActivity的代码和这个是完全一样的,除了这里有跳转事件。

源代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值