詳解Android中的四大元件之一:Activity詳解
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 點贊
相關文章
- Android元件詳解—TextViewAndroid元件TextView
- Android四大元件——Activity——Activity的生命週期Android元件
- Android架構元件WorkManager詳解Android架構元件
- Android 四大元件之 ActivityAndroid元件
- Android四大元件之ActivityAndroid元件
- Android Jetpack元件之Lifecycles庫詳解AndroidJetpack元件
- Android四大元件之Activity篇Android元件
- 通用首部欄位詳解-四大首部欄位之一
- Android 四大元件的解讀Android元件
- Android生命週期元件Lifecycle使用詳解Android元件
- 詳解NodeJs流之一NodeJS
- Pytorch框架詳解之一PyTorch框架
- Android之Activity啟動流程詳解(基於api28)AndroidAPI
- 請求首部欄位詳解-四大首部欄位之一
- 【Android】安卓四大元件之Activity(二)Android安卓元件
- Android AsyncTask 詳解Android
- Android拖拽詳解Android
- OpenStack的Heat元件詳解元件
- OpenStack的Swift元件詳解Swift元件
- OpenStack的Trove元件詳解元件
- Android必知必會的四大元件 -- Activity篇Android元件
- 重溫Android四大元件—Activity的生命週期Android元件
- 完全看懂 Android 四大元件之 Activity(上)Android元件
- ReactNative ViewPageAndroid元件詳解ReactViewAndroid元件
- Kafka核心元件詳解Kafka元件
- Android Jetpack元件之資料庫Room詳解(一)AndroidJetpack元件資料庫OOM
- 金九銀十Android面試複習題集:關於四大元件中的Activity你瞭解多少?Android面試元件
- Android工程gradle詳解AndroidGradle
- Android Service詳解(一)Android
- Android AIDL使用詳解AndroidAI
- Android Service詳解(二)Android
- Android-Application詳解AndroidAPP
- Android混淆(Proguard)詳解Android
- Android SecureRandom漏洞詳解Androidrandom
- Android 向量圖詳解Android
- Android BroadcastReceiver使用詳解AndroidAST
- Android:動畫詳解Android動畫
- Android Gson使用詳解Android