Android Activity的建立 生命週期

2021-10-09 23:36:54 字數 2084 閱讀 7728

activity是android四大元件之一。乙個activity負責管理乙個介面。

建立乙個activity:

new -> activity -> 選擇要建立的activity型別(一般我們選empty/basic activity)

as會自動在androidmanifest.xml檔案中註冊新建的activity,不用我們手動註冊。

activity的生命週期分為5種狀態:

1、啟動狀態

啟動狀態很短,啟動後便會進入執行狀態。

2、執行狀態

activity處於螢幕最前端,可見、有焦點,可與使用者互動。

android系統會盡可能保持處於執行狀態的activity的執行,如果記憶體不足,android會優先銷毀棧底的activity,來保證執行狀態的activity的執行。

3、暫停狀態

activity對使用者仍然可見,但它無法獲取焦點,不會響應使用者的操作。

例如:activity上覆蓋了乙個透明的或者非全屏的activity時,被覆蓋的activity就處於暫停狀態。

4、停止狀態

activity完全不可見,但任然保留著當前狀態和成員資訊。

如果系統記憶體不足,停止狀態的activity很容易被銷毀。

5、銷毀狀態

activity被清理出記憶體。

activity生命週期對應的方法:

1、oncreate()    在建立activity時呼叫,做一些初始化設定。此方法用得很多。

2、onstart()    在activity即將可見時呼叫

3、onresume()  在activity獲取焦點、開始可見時呼叫

4、onpause()  當activity被其它activity覆蓋或鎖屏時呼叫

5、onstop()    當activity對使用者不可見時呼叫

6、ondestroy()     在activity銷毀時呼叫

7、onstart()    在activity從停止狀態再次啟動時呼叫

當activity執行onpause()進入暫停狀態,重新回到前台執行時會先呼叫onresume();

當activity執行onstop()進入停止狀態不可見,重新回到前台執行時會先呼叫onrestart();

停止狀態的activity很容易被銷毀,記憶體不足時,暫停狀態的activity也可能被銷毀,如果暫停、停止狀態的activity已被銷毀,重新回到前台執行會先呼叫oncreate()。

在進行橫豎屏切換時,會先銷毀activity,再重建activity。

如果不希望橫豎屏切換時銷毀重建activity,可以在androidmanifest.xml的該activity中通過configchanges屬性設定:

1

<

activity

2android:name

=".activity2"

3android:label

="@string/title_activity_2"

4android:theme

5android:configchanges

="orientation|keyboardhidden|screensize"

>

6 activity

>

如果希望某個介面一直處於橫屏/豎屏狀態,不隨手機的晃動而改變,可以在androidmanifest.xml的該activity中通過 screenorientation  屬性設定:

1

<

activity

2android:name

=".activity2"

3android:label

="@string/title_activity_2"

4android:theme

5android:screenorientation

="portrait"

>

6activity

>

豎屏是portrait,橫屏是landscape。

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...