Android Activity 生命週期

2021-06-25 07:49:33 字數 894 閱讀 3622

activity生命週期圖

其中,只有resumed、paused、stopped三個狀態可以持續存在。

resumed狀態::activity前置且使用者可與之互動(也稱為running狀態)paused狀態:activity被其他前置的activity部分掩蓋,前置的activity為半透明或者沒佔滿整個螢幕。此時activity不能接收使用者輸入且無法執行任何**

stopped狀態:activity完全被隱藏且不能被使用者看見,轉為後台執行。此時activity的所有資訊例如變數都被保留。

created和started狀態只作為過渡狀態存在,會很快進入下乙個狀態。

例如,當系統呼叫oncreate()方法進入created狀態後,系統會馬上接著呼叫onstart()方法進入started狀態(此時activity已經對使用者可見),並且會繼續呼叫onresume()方法進入resumed狀態。

關於stopped和paused狀態:

paused作為單獨乙個狀態存在,但大部分時候進入paused狀態後會接著進入stopped狀態,且進入stopped狀態必須經過paused狀態(即乙個activity從resumed狀態到stopped狀態必須經過onpause()和onstop()兩個方法)

另外,雖然onstop()方法執行前會執行onpause方()法,但是還是應該在onstop()方法中執行更大更耗cpu的關閉動作,如像資料庫寫資訊。

關於從stopped狀態恢復:

雖然activity進入stopped狀態後會被系統殺掉,但是view物件的狀態會被保留在bundle(key-value對)裡,並且會在使用者回到這個activity的同乙個例項時恢復狀態。

android activity啟動模式

1.標準模式 standrad 沒啟動乙個activity,都會建立乙個activity例項,放入回退棧的內部 2.單頂模式 singletop 當啟動launchmode是 singletop的時候,系統會先判斷棧頂是不是要啟動的那個activity例項,如果是,則不會建立新的例項,直接讓棧頂直接...

Android Activity啟動模式

在androidmanifest.xml中配置 android name mainactivity android launchmode standard 有以下四種 standard 預設模式,每次通過intent啟動activity時都會建立乙個新的activity例項,並放入任務棧中。sing...

android Activity切換動畫

今天準備比賽的時候 遇到了這個問題。查了些資料總結了下。主要是通過 android theme 標籤來實現 android theme style 那麼就需要自己寫style風格檔案 如下 這裡之所以寫成2style個是為了解耦然後自己寫下anim anim enter anim anim exit...