Android应用程序中Activity的生命周期

Android应用程序中Activity的生命周期


对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的应用

下面来看看具体的Activity生命周期
图1是官方给我们提供的Activity生命周期图:

                                                                                    图1

大家大概了解了Activity的生命周期后,请看下面的代码
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.i("MY_LOG", "---onCreate");
	}
	
	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Log.i("MY_LOG", "---onStart");
	}
	
	@Override
	protected void onRestoreInstanceState(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onRestoreInstanceState(savedInstanceState);
		Log.i("MY_LOG", "---onRestoreInstanceState");
	}
	
	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		Log.i("MY_LOG", "---onRestart");
	}
	
	@Override
	protected void onSaveInstanceState(Bundle outState) {
		// TODO Auto-generated method stub
		super.onSaveInstanceState(outState);
		Log.i("MY_LOG", "---onSaveInstanceState");
	}
	
	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.i("MY_LOG", "---onResume");
	}
	
	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		Log.i("MY_LOG", "---onPause");
	}
	
	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.i("MY_LOG", "---onStop");
	}
	
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.i("MY_LOG", "---onDestroy");
	}

}
此段代码列出了Activity的各个生命周期所要执行的方法,现在对这些方进行验证。

当第一次启动应用程序时,打印出的LOG如下图:



当按下返回键时,打印出的LOG如下图:



当再次打开应用程序时,打印出的LOG如下图:



当按下home键时,打印出的LOG如下图:



当第3次打开应用时,打印出的LOG如下图:



当默认状态下循环旋转屏幕时,打印出的LOG如下图:


当在Activity中配置了 android:configChanges ="orientation|screenSize"时,打印出的LOG如下图:


注:退出Activity保存数据时要在onPause()方法中。因为onStop(),方法中有可能Activity会销毁

 

posted on 2013-09-04 18:17  新一  阅读(391)  评论(0编辑  收藏  举报

导航