Activity生命周期
Android是以堆栈的形式来进行管理Activity的.当用户启动其它Activity时,当前这个Activity就会停止,但并不会被销毁,新的Actitivy将会压入栈中,同时获得焦点;当用户按下Back键时,当前这个Activity就会被销毁,前一个Activity重新恢复.
下面这张图就是Android
api所提供的Activity生命周期图:
从上面可以看出,Activity中有7个方法:
onCreate();
onStart(); onRestart(); onResume(); onPause();
onStop();onDestroy();
用户启动Activity时,依次运行onCreate(),onStart(),onResume();
按下Home键时,先后执行onPause()跟onStop(),这时Activity并不会被销毁;
再次启动程序时,则依次运行onRestart(),onStart(),onResume();
当用户按下Back或关闭程序时,依次运行onPause(),onStop(),onDestroy(),这个时候Activity就真正的被销毁了.
下面建个工程来充分理解下Activity的生命周期:
1 public class MainActivity extends Activity { 2 private static final String TAG = "ActivityDemo"; 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 Log.e(TAG, "onCreate"); 8 } 9 protected void onStart() { 10 super.onStart(); 11 Log.e(TAG, "onStart"); 12 } 13 @Override 14 protected void onRestart() { 15 super.onRestart(); 16 Log.e(TAG, "onRestart"); 17 } 18 @Override 19 protected void onResume() { 20 super.onResume(); 21 Log.e(TAG, "onResume"); 22 } 23 @Override 24 protected void onPause() { 25 super.onPause(); 26 Log.e(TAG, "onPause"); 27 } 28 @Override 29 protected void onStop() { 30 super.onStop(); 31 Log.e(TAG, "onStop"); 32 } 33 @Override 34 protected void onDestroy() { 35 super.onDestroy(); 36 Log.e(TAG, "onDestroy"); 37 } 38 39 }
运行工程:
LogCat视窗如下:
按下Home键时:
再次启动时:
最后按下Back时:
原文:http://www.cnblogs.com/qq635722150/p/3568495.html