以畫面操作搭配 Log Message 觀察 Activity 生命週期
android.util.Log 將 Log 訊息推送至全系統,於上述工具 Logcat 可看到 Log 訊息內容。d,意義為「debug」,語法如下:
Log.d("tag", "message")
專案根目錄/app/src/main/java/專案package/MainActivity.kt的 MainActivity。
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
private const val TAG = "App_MainActivity" //宣告 Log 訊息標籤,用以分類篩選
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        Log.d(TAG,"onCreate(Bundle?) called")
    }
    override fun onStart() {
        super.onStart()
        Log.d(TAG,"onStart() called")
    }
    override fun onResume() {
        super.onResume()
        Log.d(TAG,"onResume() called")
    }
    override fun onPause() {
        super.onPause()
        Log.d(TAG,"onPause() called")
    }
    override fun onStop() {
        super.onStop()
        Log.d(TAG,"onStop() called")
    }
    override fun onDestroy() {
        super.onDestroy()
        Log.d(TAG,"onDestroy() called")
    }
}
App_MainActivity,可篩選出我們在上方程式碼宣告的 TAG 相關訊息(下圖紅框處)。
| 運作情境 | Log Message | 備註 | 
|---|---|---|
| Home 鍵 | onPause → onStop | 未發生onDestroy,Activity未被銷毀 | 
| 承上,從桌面回到 App | onStart → onResume | 恢復Activity,無需再次onCreate | 
| Overview 鍵 | onPause → onStop | 未發生onDestroy,Activity未被銷毀 | 
| 承上,從 Overview 回到 App | onStart → onResume | 恢復Activity,無需再次onCreate | 
| Back 鍵 | onPause → onStop → onDestroy | onDestroy發生,Activity被銷毀 | 
| 承上,回到 App | onCreate → onStart → onResume | onCreate 發生,代表重新創建 Activity | 
| 旋轉螢幕 | onPause → onStop → onDestroy → onCreate → onStart → onResume | onDestroy發生,Activity被銷毀;旋轉方向後 onCreate 發生,重新創建 Activity |