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