摘要:的是由特性定義的。的是通過讀取根的決定。當這個值為時,可能會在一些情形下參考特性清除的,但不總是。和為第一組,和為第二組。中的元素屬性能夠為所有組件設定一個新的默認值。
android:allowTaskReparenting
用法
比如從短信息任務 切換到瀏覽器任務。
用來標記Activity能否從啟動的Task移動到有著affinity的Task(當這個Task進入到前臺時)——“true”,表示能移動,“false”,表示它必須呆在啟動時呆在的那個Task里。
如果這個特性沒有被設定,設定到
一般來說,當Activity啟動后,它就與啟動它的Task關聯,并且在那里耗盡它的整個生命周期。當當前的Task不再顯示時,你可以使用這個特性來強制Activity移動到有著affinity的Task中。典型用法是:把一個應用程序的Activity移到另一個應用程序的主Task中。
例如,如果e-mail中包含一個web頁的鏈接,點擊它就會啟動一個Activity來顯示這個頁面。這個Activity是由Browser應用程序定義的,但是,現在它作為e-mail Task的一部分。如果它重新宿主到Browser Task里,當Browser下一次進入到前臺時,它就能被看見,并且,當e-mail Task再次進入前臺時,就看不到它了。
Actvity的affinity是由taskAffinity特性定義的。Task的affinity是通過讀取根Activity的affinity 決定。因此,根據定義,根Activity總是位于相同affinity的Task里。由于啟動模式為“singleTask”和 “singleInstance”的Activity只能
位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模式。
android:alwaysRetainTaskState
用法
用來標記Activity所在的Task的狀態是否總是由系統來保持——“true”,表示總是;“false”,表示在某種情形下允許系統恢復Task 到它的初始化狀態。默認值是“false”。這個特性只針對Task的根Activity有意義;對其它Activity來說,忽略之。
一般來說,特定的情形如當用戶從主畫面重新選擇這個Task時,系統會對這個Task進行清理(從stack中刪除位于根Activity之上的所有Activivity)。典型的情況,當用戶有一段時間沒有訪問這個Task時也會這么做,例如30分鐘。
然而,當這個特性設為“true”時,用戶總是能回到這個Task的最新狀態,無論他們是如何啟動的。這非常有用,例如,像Browser應用程序,這里有很多的狀態(例如多個打開的Tab),用戶不想丟失這些狀態。
android:clearTaskOnLanunch
用法
用來標記是否從Task中清除所有的Activity,除了根Activity外(每當從主畫面重新啟動時)——“true”,表示總是清除至它的根 Activity,“false”表示不。默認值是“false”。這個特性只對啟動一個新的Task的Activity(根Activity)有意義; 對Task中其它的Activity忽略。
當這個值為“true”,每次用戶重新啟動這個Task時,都會進入到它的根Activity中,不管這個Task最后在做些什么,也不管用戶是使用 BACK還是HOME離開的。當這個值為“false”時,可能會在一些情形下(參考alwaysRetainTaskState特性)清除Task的 Activity,但不總是。
假設,某人從主畫面啟動了Activity P,并從那里遷移至Activity Q。接下來用戶按下HOME,然后返回Activity P。
一般,用戶可能見到的是Activity Q,因為它是P的Task中最后工作的內容。然而,如果P設定這個特性為“true”,當用戶按下HOME并使這個Task再次進入前臺時,其上的所有的 Activity(在這里是Q)都將被清除。因此,當返回到這個Task時,用戶只能看到P。
如果這個特性和allowTaskReparenting都設定為“true”,那些能重新宿主的Activity會移動到共享affinity的Task中;
剩下的Activity都將被拋棄,如上所述。
android:configChanges
當配置list發生修改時, 是否調用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
舉例:在按下power鍵時,直接在應用程序里onPause處理就好。當app是豎屏時,這樣處理沒問題。但是當app是橫屏時,按下power鍵,app會強制回到豎屏,并且會重新調用activity的onCreate。很多時候這不是預期結果,所以就會用到
android:configChanges。
在配置文件里設置android:configChanges=”keyboardHidden|orientation”,這樣在屏幕方向改變的時候就不會重新調用activity的onCreate()方法,而是調用onConfigurationChanged(),然后在activity里面重在下。
@Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ //橫向 }else{ //豎向 } }
android:enabled
activity 是否可以被實例化 用法:
android:excludeFromRecents
是否可被顯示在最近打開的activity列表里 用法:
android:exported
是否允許activity被其它程序調用
android:finishOnTaskLaunch
用來標記當用戶再次啟動它的Task(在主畫面選擇這個Task)時已經存在的Activity實例是否要關閉(結束)——“true”,表示應該關閉,“false”表示不關閉。默認值是“false”。
如果這個特性和allowTaskReparenting都設定為“true”,這個特性勝出。Activity的affinity忽略。這個 Activity不會重新宿主,但是會銷毀。
android.icon
用法:,加在應用程序圖標
android:label
定義了每個title欄的名稱,但是優先級低于activity中的setTitle()
android:launchMode
用于指示Activity如何啟動。這里有四種模式,與Intent對象中的Activity Flags(FLAG_ACTIVITY_*變量)共同作用,
來決定Activity如何啟動來處理Intent。它們是:
"standard" "singleTop" "singleTask" "singleInstance" 默認模式是“standard”。 “standard”和“singleTop”為第一組,“singleTask”和“singleInstance”為第二組。
第一組可以被實例化很多次。這些實例可以屬于任何task并且可以位于activity stack的任何位置。典型的情況是,
它們會進入調用startActivity()的Task(除非Intent對象包含 FLAG_ACTIVITY_NEW_TASK標志,在這種情況下會選擇一個不同的Task——參考taskAffinity特性)。
android:multiprocess
允許多進程
android:name
activity的類名, 必須指定
android:onHistory
是否需要移除這個activity當用戶切換到其他屏幕時。 這個屬性是 API level 3 中引入的
android:permission
android:process
一個activity運行時所在的進程名,所有程序組件運行在應用程序默認的進程中,這個進程名跟應用程序的包名一致。
android:screenOrientation
activity顯示的模式, "unspecified" 默認值 "landscape" 風景畫模式,寬度比高度大一些 "portrait" 肖像模式, 高度比寬度大。 "user" 用戶的設置 "behind" "sensor" "nosensor"
android:stateNotNeeded
是否 activity被銷毀和成功重啟并不保存狀態
android:taskAffinity
activity的親屬關系, 默認情況同一個應用程序下的activity有相同的關系
android:theme
activity的樣式主題, 如果沒有設置,則activity的主題樣式從屬于應用程序, 參見
android:windowSoftInputMode
activity主窗口與軟鍵盤的交互模式, 自從API level 3 被引入
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/66611.html
閱讀 1232·2021-11-11 16:54
閱讀 883·2021-10-19 11:44
閱讀 1348·2021-09-22 15:18
閱讀 2455·2019-08-29 16:26
閱讀 2958·2019-08-29 13:57
閱讀 3102·2019-08-26 13:32
閱讀 1090·2019-08-26 11:58
閱讀 2339·2019-08-26 10:37