1. 程式人生 > >AndroidManifest.xml裡面的activity的幾個屬性簡介

AndroidManifest.xml裡面的activity的幾個屬性簡介

搞android的對AndroidManifest.xml這個檔案都比較熟悉,今天給大家介紹一下activity的幾個屬性

先貼一個例項xml

<activity
            android:name="com.xuexi.mystateactivity.MainActivity"
            android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
            android:launchMode="singleTask"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
今天我們只介紹

android:configChanges

android:screenOrientation

android:launchMode

三個比較重要的屬性:

android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
如果不指定那麼在程式執行過程中裝置轉動就會重新載入activity,否則是呼叫onConfigurationChanged這個函式而不會重新載入activity.
Android 4.0的驗證是加上keyboard|keyboardHidden跟不加這兩個沒什麼影響
        
android:screenOrientation="portrait"
鎖定螢幕方向為豎螢幕,設定這個屬性以後,螢幕不會受到裝置轉動影響,始終保持一個方向,這個選項加上以後,android:configChanges屬性將變得無效
        
android:launchMode="singleTask"
Activity一共有以下四種launchMode
standard:每次跳轉系統都會在task中生成一個新的Activity例項
singleTop:每次跳轉系統都會在task棧頂查詢,如果發現有對應的Activity例項正位於棧頂,則重複利用,不再生成新的例項
singleTask:如果發現有對應的Activity例項,則使此Activity例項之上的其他Activity例項統統出棧,使此Activity例項成為棧頂物件,顯示到幕前
singleInstance:會啟用一個新的棧結構,將Acitvity放置於這個新的棧結構中,並保證不再有其他Activity例項進入,保證一個Activity只有一個單例,其他應用呼叫都在一個上操作