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

來源:互聯網
上載者:User

標籤:啟動模式   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的生命週期和啟動模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.