Android之Activity生命週期

Android之Activity生命週期

Activity生命週期流程圖

該流程圖很好的展示了Activity生命週期的全部流程,更加容易理解。

在這裏插入圖片描述

生命週期方法簡析

  • onCreate():這是第一個回調,在活動第一次創建時調用
  • onStart():這個回調在活動爲用戶可見時被調用
  • onResume():這個回調在應用程序與用戶開始可交互的時候調用
  • onPause():被暫停的活動無法接受用戶輸入,不能執行任何代碼。當前活動將要被暫停,上一個活動將要被恢復時調用
  • onStop():當活動不在可見時調用
  • onDestroy():當活動被系統銷燬之前調用
  • onRestart():當活動被停止以後重新打開時調用

測試代碼

package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;

public class MainActivity extends Activity {
   String msg = "Android : ";

   /** 當活動第一次被創建時調用 */
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      Log.d(msg, "The onCreate() event");
   }

   /** 當活動即將可見時調用 */
   @Override
   protected void onStart() {
      super.onStart();
      Log.d(msg, "The onStart() event");
   }

   /** 當活動可見時調用 */
   @Override
   protected void onResume() {
      super.onResume();
      Log.d(msg, "The onResume() event");
   }

   /** 當其他活動獲得焦點時調用 */
   @Override
   protected void onPause() {
      super.onPause();
      Log.d(msg, "The onPause() event");
   }

   /** 當活動不再可見時調用 */
   @Override
   protected void onStop() {
      super.onStop();
      Log.d(msg, "The onStop() event");
   }

   /** 當活動將被銷燬時調用 */
   @Override
   public void onDestroy() {
      super.onDestroy();
      Log.d(msg, "The onDestroy() event");
   }
}

總結

當Activity啓動時,依次會調用onCreate(),onStart(),onResume(),而當Activity退居後臺時(不可見,點擊Home或者被新的Activity完全覆蓋),onPause()和onStop()會依次被調用。當Activity重新回到前臺(從桌面回到原Activity或者被覆蓋後又回到原Activity)時,onRestart(),onStart(),onResume()會依次被調用。當Activity退出銷燬時(點擊back鍵),onPause(),onStop(),onDestroy()會依次被調用,到此Activity的整個生命週期方法回調完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章