您好,登錄后才能下訂單哦!
【本博客內的文章是本人的學習筆記總結,如有錯誤請各位批評指正,謝謝!歡迎加入群285077071討論】
關于Activity的生命周期的學習,我將從以下幾個方面入手來全面認識:
一、什么是生命周期?
二、Activity生命周期的官方定義
三、Activity生命周期流程圖的理解
四、通過代碼來切身體驗每一個周期函數的執行時機
接下來,讓我們開始進入正題吧。
一、什么是生命周期?
生命周期,通俗來講就是從生到死這一期間一系列的狀態。大家可能在其他語言中早已經聽說了這一概念,比如C語言中變量的生命周期,iOS開發中UIView的生命周期等。生命周期這個概念在不同的領域當中大體講的差不多,只是劃分的狀態可能不同,有的劃分粒度大一些,有的劃分粒度要細一些。本文要講的生命周期從宏觀上來講就是上圖上所列舉的那樣:創建——>將要可見——>可見——>將要不可見——>銷毀。
二、Activity生命周期的官方定義
Activities in the system are managed as an activity stack. When a new activity is started, it is placed on the top of the stack and becomes the running activity -- the previous activity always remains below it in the stack, and will not come to the foreground again until the new activity exits.
官方意思大體是這樣:Activity在系統中是通過Activity棧來進行管理的,當一個新的Activity被打開時,這個新的Activity就被放到棧的頂部并且保持運行狀態,但在其之前的那個Activity總是保留在這個新Activity的下面,并且只有當這個新的Activity退出時原來的那個Activity才會重新回到前臺。
三、Activity生命周期流程圖的理解
讓我們一起來看一下官方的這個生命流程圖:
該圖引用自:http://developer.android.com/reference/android/app/Activity.html
為方便說明,在此我作了一點點的改動,其實也就是把注釋說明換成中文而已了,哈哈。
Activity的生命周期函數的執行時機都已經在圖中作了簡要說明,在此就不在贅述。
四、通過代碼來切身體驗每一個周期函數的執行時機
1、當我們啟動應用程序時,生命周期函數執行順序如下:
2、當我們按下power鍵鎖屏時,生命周期函數執行順序如下:
3、當我們再次解鎖回到界面時,生命周期函數執行順序如下:
4、當我們點擊按鈕打開一個新的Activity時,生命周期函數執行順序如下:
5、當新打開的Activity退出時,生命周期函數執行順序如下:
6、當Activity退出時,生命周期函數執行順序如下:
7、最后一點,我們來驗證下網上諸多網友博文中所說的:“當彈出Dialog時會執行onPause()函數”這一說法,這一說法正確嗎?
當Dialog彈出后我們來查看下輸出日志信息:
從輸出日志我們可以發現,在彈出Dialog時根本沒有執行onPause()函數,依然保持著可見狀態。所以,網絡上關于“當彈出Dialog時會執行onPause()函數”這一說法是錯誤的!
關于Activity生命周期的學習總結,到此就告一段落了!歡迎各位批評指正!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。