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如下图:
android:configChanges
="orientation|screenSize"时,打印出的LOG如下图:
注:退出Activity保存数据时要在onPause()方法中。因为onStop(),方法中有可能Activity会销毁