activity的生命周期 activity的四種狀態 running: 正在運行,處於活動狀態,用戶可以點擊屏幕,是將 處於棧頂的狀態。 paused: 暫停,處於失去焦點的時候,處於 ,可能是被如彈框一樣遮蓋,被通明的 的放置到棧頂, 一起狀態都存在。 stopped: 處於 狀態,是當前的 被 ...
activity的生命周期
activity的四種狀態
running:正在運行,處於活動狀態,用戶可以點擊屏幕,是將activity
處於棧頂的狀態。
paused:暫停,處於失去焦點的時候,處於paused
,可能是被如彈框一樣遮蓋,被通明的activity
的放置到棧頂,paused
一起狀態都存在。
stopped:處於stopped
狀態,是當前的activity
被遮蓋,是完全遮擋的那種,覆蓋屏幕,一起的狀態信息還是存在的。
killed:activity
被銷毀,回收,一切的狀態信息不存在了。
activity的生命周期
activity啟動 ->被創建時調用
onCreate()
->被啟動,處於用戶可見狀態,但不能與用戶交互onStart()
->可與用戶交互了onResume()
點擊Home 整個
activity
處於停止狀態,可見,不能與用戶交互onPause()
->整個activity
被停止,被完全覆蓋,onStop()
回到activity 處於由不可見狀態到可見的狀態
onRestart()->onStart()-onResume()
退出activity
onPause()->onStop()
->當前activity
被銷毀,回收,資源釋放onDestroy()
Android進程優先順序
- 前臺進程 -Activte process
- 可見進程-Visible Process
- 服務進程 - Service process
- 後臺進程 Background process
- 空進程-Empty process
前臺
前臺process
是與用戶交互的控制項的應用程式,處於“活動”狀態的Activity
。
可見
可見進程為activity
可見,不屬於前臺,但不能與用戶交互的進程。
服務
已經啟動的Service
。
後臺
後臺的進程中Activity
是不可見的,後臺進程中沒有啟動任何的Service
,即為後臺進程。
空
空進程,在資源需要的時候常常被殺掉。
Android的任務棧
App
啟動時,系統會創建一個任務棧,棧也被叫做Task
。退出activity
的時候,要清除任務棧,任務棧會保留每個activity
的信息,所以要安全的保存任務棧。
任務棧不是唯一的,也可有一個
activity
可以獨享一個任務棧。
正常模式下的棧是後進先出,在AndroidManifest.xml
中啟動,通過android:launchMode
進行設置的,有四種模式standard、singleTop、singleTask、singleInstance
。
standard:預設,每次啟動重新創建。每創建一個
activity
,都會創建一個onCreate()->onStart()->onResume()
。每一次都重新創建會消耗資源。singleTop:棧頂復用模式,棧頂存在則不創建,如果不在棧頂就又要重新創建,檢驗的是棧頂是否存在,即使在第二個,不是棧頂,
activity
也要被重新創建。singleTask:檢測整個任務棧,是否存在
activity
,如果存在就存放在棧頂,1)啟動singleTask
的Activity
,會將該Activity
置於棧頂,它上面的所有activity
都會被銷毀。2)其他App
以singleTask
模式啟動該Activity
時,會創建一個新的任務棧,如果啟動模式為singleTask
的Activity
已經在一個任務棧中,那麼啟動後,後臺的這個任務棧將一起切換至前臺。singleinstance:該
activity
在整個系統當中有且只有一個實例,在任務棧只有一個activity
,即是singleinstance
。
scheme跳轉協議
scheme
跳轉協議為一種頁面內跳轉協議,跳轉頁面,根據H5
頁面跳轉,跳轉app
等。
結語
- 本文主要講解 詳解Android中的四大組件之一:Activity詳解
下麵我將繼續對
Java
、Android
中的其他知識 深入講解 ,有興趣可以繼續關註小禮物走一走 or 點贊