activity作為Android開發中一個最重要的組件之一,所以要對它有詳細的瞭解 1.當activity第一次創建時執行以下方法 2. 當前activity啟動另一個activity時執行的方法 3.從另一個activity返回到當前activity執行的方法 4.當前activity點擊hom ...
activity作為Android開發中一個最重要的組件之一,所以要對它有詳細的瞭解
1.當activity第一次創建時執行以下方法
1 /** 2 * 第一次創建activity調用 3 * 4 * @param savedInstanceState 5 */ 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 Log.i(TAG, "--------------->onCreate"); 11 } 12 13 /** 14 * activity變為可視狀態調用 15 */ 16 @Override 17 protected void onStart() { 18 super.onStart(); 19 Log.i(TAG, "--------------->onStart"); 20 } 21 22 /** 23 * activity的界面就可以和用戶進行交互時調用 24 */ 25 @Override 26 protected void onResume() { 27 super.onResume(); 28 Log.i(TAG, "--------------->onResume"); 29 }
1 MainActivity: --------------->onCreate 2 MainActivity: --------------->onStart 3 MainActivity: --------------->onResume
2. 當前activity啟動另一個activity時執行的方法
1 /** 2 * 用戶不可以和界面進行交互時調用 3 */ 4 @Override 5 protected void onPause() { 6 super.onPause(); 7 Log.i(TAG, "--------------->onPause"); 8 } 9 /** 10 * activity處於不可見狀態調用 11 */ 12 @Override 13 protected void onStop() { 14 super.onStop(); 15 Log.i(TAG, "--------------->onStop"); 16 }
1 MainActivity: --------------->onPause 2 MainActivity: --------------->onStop
3.從另一個activity返回到當前activity執行的方法
1 /** 2 * 當前activity沒有被銷毀重新啟動時調用 3 */ 4 @Override 5 protected void onRestart() { 6 super.onRestart(); 7 Log.i(TAG, "--------------->onRestart"); 8 } 9 /** 10 * activity變為可視狀態調用 11 */ 12 @Override 13 protected void onStart() { 14 super.onStart(); 15 Log.i(TAG, "--------------->onStart"); 16 } 17 /** 18 * activity的界面就可以和用戶進行交互時調用 19 */ 20 @Override 21 protected void onResume() { 22 super.onResume(); 23 Log.i(TAG, "--------------->onResume"); 24 }
1 MainActivity: --------------->onRestart 2 MainActivity: --------------->onStart 3 MainActivity: --------------->onResume
4.當前activity點擊home鍵後執行的方法
1 /** 2 * 用戶不可以和界面進行交互時調用 3 */ 4 @Override 5 protected void onPause() { 6 super.onPause(); 7 Log.i(TAG, "--------------->onPause"); 8 } 9 /** 10 * activity處於不可見狀態調用 11 */ 12 @Override 13 protected void onStop() { 14 super.onStop(); 15 Log.i(TAG, "--------------->onStop"); 16 }
1 MainActivity: --------------->onPause 2 MainActivity: --------------->onStop
5.從後臺運行中進入activity執行的方法與 3 一樣
6.點擊返回鍵時執行的方法
1 /** 2 * 用戶不可以和界面進行交互時調用 3 */ 4 @Override 5 protected void onPause() { 6 super.onPause(); 7 Log.i(TAG, "--------------->onPause"); 8 } 9 /** 10 * activity處於不可見狀態調用 11 */ 12 @Override 13 protected void onStop() { 14 super.onStop(); 15 Log.i(TAG, "--------------->onStop"); 16 } 17 /** 18 * 當activity銷毀時調用 19 */ 20 @Override 21 protected void onDestroy() { 22 super.onDestroy(); 23 Log.i(TAG, "--------------->onDestroy"); 24 }
1 MainActivity: --------------->onPause 2 MainActivity: --------------->onStop 3 MainActivity: --------------->onDestroy
7.當切換橫豎屏時系統會銷毀當前activity重新創建一個activity執行方法的先後順序如下:
1 MainActivity: --------------->onPause 2 MainActivity: --------------->onStop 3 MainActivity: --------------->onDestroy 4 5 6 MainActivity: --------------->onCreate 7 MainActivity: --------------->onStart 8 MainActivity: --------------->onResume