標籤:啟動模式 oid creat 任務棧 cond git 執行個體 github 基本
activity是android開發的基本中的基本每一個項目都會有activity。activity有自己的生命週期,在網上有很多部落格和資料,在這裡我也只是印證一下。
一個activity:
在開啟activity的時候會走下面三個方法
onCreate
onStart
onResume
在單擊回退activity時候
onPause
onStop
onDestroy
在點擊home鍵的時候
onPause
onStop
再次開啟app
onRestart
onStart
onResume
當程式崩潰的時候,不走生命週期
在有兩個activity的時候,把第一個activity名稱暫訂位frist,第二個為second
當啟動第一個activity
frist: onCreate
frist: onStart
frist: onResume
當開啟第二個activity
frist: onPause
second: onCreate
second: onStart
second: onResume
frist: onStop
在第二個activity回退時
second: onPause
frist: onRestart
frist: onStart
frist: onResume
second: onStop
second: onDestroy
在第二個activity點擊home
second: onPause
second: onStop
再次開啟app
second: onRestart
second: onStart
second: onResume
activity的啟動模式
standard:標準模式,每次啟動一個Activity都會重建立一個新的執行個體,不管這個執行個體是否已經存在
singleTop:棧頂複用模式,如果新Activity已經位於任務站的棧頂,那麼次Activity不會被重新建立,同時它的onNewIntent方法會被調用,通過此方法的參數我們可以去取當前請求的資訊.
singleTask:棧內複用模式,這是一種單一實例模式,在這種模式下,只要Activity在一個棧中存在,那麼多次啟動此Activity都不會重新建立執行個體,和singleTop一樣,系統也會調用其onNewIntent
singleIntance:單一實例模式,一種加強的singleTask模式,除了具有singleTask模式的所有特性,還具有此種模式的Activity只能單獨地位於任務棧中,由於棧內複用的特性,後續的請求均不會建立新的Activity,除非這個任務棧被系統銷毀
github地址 https://github.com/tempest1/AndroidActivity
android activity的生命週期和啟動模式