Activity生命周期

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 }
View Code

运行工程:

LogCat视窗如下:

按下Home键时:

再次启动时:

最后按下Back时:

 

 

 

posted on 2014-02-26 11:03  Sometimes丶  阅读(262)  评论(0编辑  收藏  举报

导航