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如果希望某個介面一直處於橫屏/豎屏狀態,不隨手機的晃動而改變,可以在androidmanifest.xml的該activity中通過 screenorientation 屬性設定:<
activity
2android:name
=".activity2"
3android:label
="@string/title_activity_2"
4android:theme
5android:configchanges
="orientation|keyboardhidden|screensize"
>
6 activity
>
1豎屏是portrait,橫屏是landscape。<
activity
2android:name
=".activity2"
3android:label
="@string/title_activity_2"
4android:theme
5android:screenorientation
="portrait"
>
6activity
>
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...