詳解Android中的四大元件之一:Activity詳解

達叔小生發表於2018-08-07

標題圖

Activity詳解.png

activity的生命週期

Activity的生命週期.png

activity的四種狀態

Activity的四種狀態.png

running:正在執行,處於活動狀態,使用者可以點選螢幕,是將activity處於棧頂的狀態。

paused:暫停,處於失去焦點的時候,處於paused,可能是被如彈框一樣遮蓋,被通明的activity的放置到棧頂,paused一起狀態都存在。

stopped:處於stopped狀態,是當前的activity被遮蓋,是完全遮擋的那種,覆蓋螢幕,一起的狀態資訊還是存在的。

killed:activity被銷燬,回收,一切的狀態資訊不存在了。

activity的生命週期

activity的生命週期

activity啟動 ->被建立時呼叫onCreate()->被啟動,處於使用者可見狀態,但不能與使用者互動onStart()->可與使用者互動了onResume()

點選Home 整個activity處於停止狀態,可見,不能與使用者互動onPause()->整個activity被停止,被完全覆蓋,onStop()

回到activity 處於由不可見狀態到可見的狀態onRestart()->onStart()-onResume()

退出activity onPause()->onStop()->當前activity被銷燬,回收,資源釋放onDestroy()

Android程式優先順序

Android程式優先順序.png

  1. 前臺程式 -Activte process
  2. 可見程式-Visible Process
  3. 服務程式 - Service process
  4. 後臺程式 Background process
  5. 空程式-Empty process

前臺

前臺process是與使用者互動的控制元件的應用程式,處於“活動”狀態的Activity

可見

可見程式為activity可見,不屬於前臺,但不能與使用者互動的程式。

服務

已經啟動的Service

後臺

後臺的程式中Activity是不可見的,後臺程式中沒有啟動任何的Service,即為後臺程式。

空程式,在資源需要的時候常常被殺掉。

Android的任務棧

App啟動時,系統會建立一個任務棧,棧也被叫做Task。退出activity的時候,要清除任務棧,任務棧會保留每個activity的資訊,所以要安全的儲存任務棧。

任務棧不是唯一的,也可有一個activity可以獨享一個任務棧。

正常模式下的棧是後進先出,在AndroidManifest.xml中啟動,通過android:launchMode進行設定的,有四種模式standard、singleTop、singleTask、singleInstance

Android的任務棧.png

  1. standard:預設,每次啟動重新建立。每建立一個activity,都會建立一個onCreate()->onStart()->onResume()。每一次都重新建立會消耗資源。

  2. singleTop:棧頂複用模式,棧頂存在則不建立,如果不在棧頂就又要重新建立,檢驗的是棧頂是否存在,即使在第二個,不是棧頂,activity也要被重新建立。

  3. singleTask:檢測整個任務棧,是否存在activity,如果存在就存放在棧頂,1)啟動singleTaskActivity,會將該Activity置於棧頂,它上面的所有activity都會被銷燬。2)其他AppsingleTask模式啟動該Activity時,會建立一個新的任務棧,如果啟動模式為singleTaskActivity已經在一個任務棧中,那麼啟動後,後臺的這個任務棧將一起切換至前臺。

  4. singleinstance:activity在整個系統當中有且只有一個例項,在任務棧只有一個activity,即是singleinstance

scheme跳轉協議

scheme跳轉協議為一種頁面內跳轉協議,跳轉頁面,根據H5頁面跳轉,跳轉app等。

結語

  • 本文主要講解 詳解Android中的四大元件之一:Activity詳解
  • 下面我將繼續對JavaAndroid中的其他知識 深入講解 ,有興趣可以繼續關注

  • 小禮物走一走 or 點贊

送❤

相關文章