activity的生命週期及啟動模式

2022-10-10 22:27:23 字數 1095 閱讀 1170

activity的生命週期:

oncreate(),onstart(),onresume(),onpause(),onrestart(),onstop(),ondestory()

對一些資源以及狀態的操作儲存,最好是儲存在生命週期的哪個函式中進行:onstart()

當開啟乙個activity時,呼叫oncreate()->onstart()->onresume(),如果已經建立,不用呼叫oncreate(),當開啟另乙個activity後,一樣的步驟,當它遮住原先的activity時,原先的activity會呼叫onpause()隱藏,當重新返回原先的activity時,第二個activity,onstop()->ondestory();第乙個activity如果沒有銷毀的話,會直接呼叫onrestart(),否則需重新建立

橫豎屏切換時候 activity 的生命週期:

1、不設定 activity 的 android:configchanges 時,切屏會重新呼叫各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次

2、設定 activity 的 android:configchanges="orientation"時,切屏還是會重新呼叫各個生命週期,切橫、豎屏時只會執行一次

3、設定 activity 的 android:configchanges="orientation|keyboardhidden"時,切屏不會重新呼叫各個生命週期,只會執行 onconfigurationchanged 方法

4種 activity 的啟動模式:

1.standard: 標準模式,一呼叫 startactivity()方法就會產生乙個新的例項。

2.singletop: 如果已經有乙個例項位於 activity 棧的頂部時, 就不產生新的例項, 而只是呼叫activity 中的 newinstance()方法。如果不位於棧頂,會產生乙個新的例項。

3.singletask: 會在乙個新的 task(工作任務) 中產生這個例項,以後每次呼叫都會使用這個,不會去產生新的例項了。

4.singleinstance: 這個跟 singletask 基本上是一樣, 只有乙個區別: 在這個模式下的activity例項所處的 task 中,只能有這個 activity例項,不能有其他的例項。

Activity生命週期

oncreate 設定activity所使用的布局檔案 按鈕繫結 等靜態設定操作 onstart 該activity能被我們看到的時候就會呼叫onstart onresume 能夠獲得使用者焦點 onpause 啟動另外乙個activity的時候就會呼叫第乙個activity的該方法 onstop ...

activity生命週期

乙個activity的啟動順序 oncreate onstart onresume 當另乙個activity啟動時 第乙個activity onpause 第二個activity oncreate onstart onresume 第乙個activity onstop 當返回到第乙個activity...

Activity 生命週期

activities 在系統中是以 activity 棧的形式被管理的。當乙個新的 activity 啟動時,它將會被放到棧的頂部並變成 running activity 上乙個activity 會被至於它的下面,在新 activity 存在期間它都不會到前端來。乙個 activity 有四個重要的...