AndroidManifest.xml檔案中元素用法
AndroidManifest.xml檔案中<activity>元素用法
語法
<activity android:allowEmbedded=["true" | "false"]
android:allowTaskReparenting=["true" | "false"]
android:alwaysRetainTaskState=["true" | "false"]
android:autoRemoveFromRecents=["true" | "false"]
android:banner ="drawable resource"
android:clearTaskOnLaunch=["true" | "false"]
android:colorMode=[ "hdr" | "wideColorGamut"]
android:configChanges=["mcc", "mnc", "locale",
"touchscreen", "keyboard", "keyboardHidden",
"navigation ", "screenLayout", "fontScale",
"uiMode", "orientation", "density",
"screenSize", "smallestScreenSize"]
android:directBootAware=["true" | "false"]
android:documentLaunchMode=["intoExisting" | "always" |
"none " | "never"]
android:enabled=["true" | "false"]
android:excludeFromRecents=["true" | "false"]
android:exported=["true" | "false"]
android:finishOnTaskLaunch=["true" | "false"]
android:hardwareAccelerated=["true" | "false"]
android:icon="drawable resource"
android:immersive=["true" | "false"]
android:label="string resource"
android:launchMode=["standard" | "singleTop" |
"singleTask" | "singleInstance"]
android:maxRecents="integer"
android:maxAspectRatio="float"
android:multiprocess=["true" | "false"]
android:name="string"
android:noHistory=["true" | "false"]
android:parentActivityName="string"
android:persistableMode=["persistRootOnly" |
"persistAcrossReboots" | "persistNever"]
android:permission="string"
android:process="string"
android:relinquishTaskIdentity=["true" | "false"]
android:resizeableActivity=["true" | "false"]
android:screenOrientation=["unspecified" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"userLandscape" | "userPortrait" |
"sensor" | "fullSensor" | "nosensor" |
"user" | "fullUser" | "locked"]
android:showForAllUsers=["true" | "false"]
android:stateNotNeeded=["true" | "false"]
android:supportsPictureInPicture=["true" | "false"]
android:taskAffinity="string"
android:theme="resource or theme"
android:uiOptions=["none" | "splitActionBarWhenNarrow"]
android:windowSoftInputMode=["stateUnspecified",
"stateUnchanged", "stateHidden",
"stateAlwaysHidden", "stateVisible",
"stateAlwaysVisible", "adjustUnspecified",
"adjustResize", "adjustPan"] >
. . .
</activity>
<activity>
必須包含在<application>
元素中<activity>
可以包含<intent-filter>
<meta-data>
<layout>
用法描述
宣告一個activity(Activity
的子類),實現應程式的虛擬使用者介面。所有的activity都在manifest檔案中用<activity>
元素表示任何未在清單檔案宣告activity都無法執行,以至於應用程式崩潰。
屬性
android:allowEmbedded
表示該activity可以作為另一個activity嵌入子項啟動。特別是在子activity放在另一個activity容器中的情況下。例如在穿戴應用中用作自定義通知的activity就必須宣告該屬性,因而可以在駐留在另一個程序的上下文流中顯示activity。
該屬性預設值為false
android:allowTaskReparenting
無論該activity是否可以從啟動它的任務棧移動到下一個在前臺與其有相關性的任務棧。如果設定為“true”則可以移動,false則不可以移動並存放在啟動的任務棧中。
如果activity沒有設定該屬性,則直接取
<application>
元素中對應的屬性值。allowTaskReparenting
預設值為”false
“.
正常情況下,當一個activity啟動,它便與啟動它的activity的任務棧相關聯,並且整個生命週期都會停留在該任務棧當中。你可以使用此屬性強制將activity分配到有相同affinity的任務棧當中。通常,它用於使應用程式的activity移動到與該應用程式關聯的主任務。
比如,一封郵件訊息裡面包含了一個網址,點選該連線拉起了一個activity顯示網頁。該activity由瀏覽器應用定義,但是由郵件的任務棧裡面啟動。如果重設到瀏覽器任務棧,當點選瀏覽器應用的時候將會顯示該activity。郵件任務棧再次切換到前面的話,該activity將不會顯示。
activity的親和力由taskAffinity
熟悉定義。一個任務棧的親和力是由讀取的根activity的親和力決定的。因此,根據定義,根activity總是在同一親緣關係的任務棧中。由於使用”singleTask
“或者是”singleInstance
“的啟動模式的activity只能位於任務棧的根目錄,因此重新設定任務棧只能使用”standard
“和”singleTop
“的啟動模式。
android:alwaysRetainTaskState
activity所在的任務棧的狀態是否始終由系統維護,如果是,則為“true
”,如果為”false
“,則表示允許系統在某些情況下將任務重置為其初始狀態。預設值為“false
”。該屬性僅僅對根activity有效,對其他activity完全無效。
通常,當用戶從主螢幕重新選擇該任務時,系統會在某些情況下清除任務棧(清除在根activity之上的所有activity)。通常情況下,如果使用者在一段時間內(比如30分鐘)未訪問該任務棧,則會執行上述操作。
然而,當此屬性為“true
”時,使用者將總是返回到上一個狀態的任務。比如,在諸如Web瀏覽器之類的應用程式中,這是有用的,其中存在許多使用者不想丟失的狀態(例如多個開啟的選項卡)。
android:autoRemoveFromRecents
啟動攜帶有該屬性的activity,activity所在的任務是否保留在預覽螢幕中,直到任務中的最後一個activity執行完成為止。如果為”true
“,該任務將會自動從預覽螢幕中移除。這將覆蓋呼叫者使用的FLAG_ACTIVITY_RETAIN_IN_RECENTS
值。並且它必須是布林值。