android activity的生命周期和啟動模式


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


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com