1. 程式人生 > >【架構分析】Android鎖屏與Activity生命週期的變化

【架構分析】Android鎖屏與Activity生命週期的變化

概述

Android開機啟動後預設會先進入鎖屏然後滅屏休眠, 本文旨在介紹這個過程中最先啟動的Home Launch Activity (其實在Android N上最早被啟動的是Settings中的FallbackHome Activity) 如何發生相關的生命週期變化, 以及AMS hold wakeup lock和釋放wakeup lock確保裝置可以進入省電休眠狀態

Framework分析

這裡寫圖片描述

如上面的時序圖所示1.1.1 步驟中AMS hold了mGoingToSleep這個wakeup lock 一旦1.1.1.1 checkReadyForSleepLocked的if (!mService.isSleepingOrShuttingDownLocked()) 條件檢查失敗,就會導致後續期望的Activity Pause生命週期排程沒有發生, 進而使得整個流程中最後4.1.1中釋放mGoingToSleep wakeup lock的回撥沒有來到