詳解Android中的四大組件之一:Activity詳解
![詳解Android中的四大組件之一:Activity詳解](http://p2.ttnews.xyz/loading.gif)
activity的生命週期
![詳解Android中的四大組件之一:Activity詳解](http://p2.ttnews.xyz/loading.gif)
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。 有興趣可以添加q群:810309655
可見
可見進程為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 點贊
閱讀更多 java高級面試 的文章