AndroidManifest詳解

一、關(guān)于AndroidManifest.xml

AndroidManifest.xml 是每個android程序中必須的文件方妖。它位于整個項目的根目錄橡类,描述了package中暴露的組件(activities, services, 等等)灵再,他們各自的實現(xiàn)類,各種能被處理的數(shù)據(jù)和啟動位置翎承。 除了能聲明程序中的Activities, ContentProviders, Services, 和Intent Receivers,還能指定permissions和instrumentation(安全控制和測試)

二、AndroidManifest.xml結(jié)構(gòu)

三符匾、各個節(jié)點的詳細介紹

1叨咖、第一層():(屬性)

<manifest  xmlns:android="http://schemas.android.com/apk/res/android" 
          package="com.woody.test" 
          android:sharedUserId="string" 
          android:sharedUserLabel="string resource" 
          android:versionCode="integer" 
          android:versionName="string" 
          android:installLocation=["auto" | "internalOnly" | "preferExternal"] > 
</manifest> 
image.gif

A、xmlns:android

定義android命名空間待讳,一般為 http://schemas.android.com/apk/res/android 芒澜,這樣使得Android中各種標準屬性能在文件中使用,提供了大部分元素中的數(shù)據(jù)创淡。

B痴晦、package

指定本應用內(nèi)java主程序包的包名,它也是一個應用進程的默認名稱

C琳彩、sharedUserId

表明數(shù)據(jù)權(quán)限誊酌,因為默認情況下,Android給每個APK分配一個唯一的UserID露乏,所以是默認禁止不同APK訪問共享數(shù)據(jù)的碧浊。若要共享數(shù)據(jù),第一可以采用Share Preference方法瘟仿,第二種就可以采用sharedUserId了箱锐,將不同APK的sharedUserId都設(shè)為一樣,則這些APK之間就可以互相共享數(shù)據(jù)了劳较。
Android給每個APK進程分配一個單獨的用戶空間,其manifest中的userid就是對應一個Linux用戶(Android 系統(tǒng)是基于Linux)的.所以不同APK(用戶)間互相訪問數(shù)據(jù)默認是禁止的.但是它也提供了2種APK間共享數(shù)據(jù)的形式:
1. Share Preference. / Content Provider
APK可以指定接口和數(shù)據(jù)給任何其他APK讀取. 需要自己實現(xiàn)接口和Share的數(shù)據(jù).
本文對于這個不做詳細解釋
2. Shared User id
通過Shared User id,擁有同一個User id的多個APK可以配置成運行在同一個進程中.所以默認就是可以互相訪問任意數(shù)據(jù). 也可以配置成運行成不同的進程, 同時可以訪問其他APK的數(shù)據(jù)目錄下的數(shù)據(jù)庫和文件.就像訪問本程序的數(shù)據(jù)一樣.比如某個公司開發(fā)了多個Android 程序, 那么可以把數(shù)據(jù),圖片等資源集中放到APK A中去. 然后這個公司的所有APK都使用同一個User ID, 那么所有的資源都可以從APK A中讀取.
舉個例子:
APK A 和APK B 都是C公司的產(chǎn)品,那么如果用戶從APK A中登陸成功.那么打開APK B的時候就不用
再次登陸. 具體實現(xiàn)就是 A和B設(shè)置成同一個User ID:

  • 在2個APK的AndroidManifest.xml 配置User ID:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
   package="com.android.demo.a1" 
   android:sharedUserId="com.c"> 
image.gif

這個"com.c" 就是user id, 然后packagename APK A就是上面的內(nèi)容, APK B可能
是"com.android.demo.b1" 這個沒有限制
這個設(shè)定好之后, APK B就可以像打開本地數(shù)據(jù)庫那樣 打開APK A中的數(shù)據(jù)庫了.
APK A把登陸信息存放在A的數(shù)據(jù)目錄下面. APK B每次啟動的時候讀取APK A下面的數(shù)據(jù)庫
判斷是否已經(jīng)登陸:
APK B中的代碼:

friendContext = this.createPackageContext( 
                  "com.android.demo.a1", 
                  Context.CONTEXT_IGNORE_SECURITY); 

[圖片上傳中...(image-d0eb6d-1538296610065-5)]

通過A的package name 就可以得到A的 packagecontext
通過這個context就可以直接打開數(shù)據(jù)庫

D驹止、sharedUserLabel

一個共享的用戶名浩聋,它只有在設(shè)置了sharedUserId屬性的前提下才會有意義

E、versionCode

是給設(shè)備程序識別版本(升級)用的必須是一個interger值代表app更新過多少次臊恋,比如第一版一般為1衣洁,之后若要更新版本就設(shè)置為2,3等等抖仅。坊夫。。

F撤卢、versionName

這個名稱是給用戶看的环凿,你可以將你的APP版本號設(shè)置為1.1版,后續(xù)更新版本設(shè)置為1.2放吩、2.0版本等等拷邢。。屎慢。

G瞭稼、installLocation

安裝參數(shù),是Android2.2中的一個新特性腻惠,installLocation有三個值可以選擇:internalOnly环肘、auto、preferExternal
選擇preferExternal,系統(tǒng)會優(yōu)先考慮將APK安裝到SD卡上(當然最終用戶可以選擇為內(nèi)部ROM存儲上集灌,如果SD存儲已滿悔雹,也會安裝到內(nèi)部存儲上)
選擇auto,系統(tǒng)將會根據(jù)存儲空間自己去適應
選擇internalOnly是指必須安裝到內(nèi)部才能運行
(注:需要進行后臺類監(jiān)控的APP最好安裝在內(nèi)部欣喧,而一些較大的游戲APP最好安裝在SD卡上‰缌悖現(xiàn)默認為安裝在內(nèi)部,如果把APP安裝在SD卡上唆阿,首先得設(shè)置你的level為8益涧,并且要配置android:installLocation這個參數(shù)的屬性為preferExternal)

2、第二層():屬性

一個AndroidManifest.xml中必須含有一個Application標簽驯鳖,這個標簽聲明了每一個應用程序的組件及其屬性(如icon,label,permission等)

<application  android:allowClearUserData=["true" | "false"] 
             android:allowTaskReparenting=["true" | "false"] 
             android:backupAgent="string" 
             android:debuggable=["true" | "false"] 
             android:description="string resource" 
             android:enabled=["true" | "false"] 
             android:hasCode=["true" | "false"] 
             android:icon="drawable resource" 
             android:killAfterRestore=["true" | "false"] 
             android:label="string resource" 
             android:manageSpaceActivity="string" 
             android:name="string" 
             android:permission="string" 
             android:persistent=["true" | "false"] 
             android:process="string" 
             android:restoreAnyVersion=["true" | "false"] 
             android:taskAffinity="string" 
             android:theme="resource or theme" > 
</application> 

[圖片上傳中...(image-2f6023-1538296610065-4)]

A闲询、android:allowClearUserData('true' or 'false')

用戶是否能選擇自行清除數(shù)據(jù),默認為true浅辙,程序管理器包含一個選擇允許用戶清除數(shù)據(jù)扭弧。當為true時,用戶可自己清理用戶數(shù)據(jù)记舆,反之亦然

B鸽捻、android:allowTaskReparenting('true' or 'false')

是否允許activity更換從屬的任務(wù),比如從短信息任務(wù)切換到瀏覽器任務(wù)

C、android:backupAgent

這也是Android2.2中的一個新特性御蒲,設(shè)置該APP的備份伊磺,屬性值應該是一個完整的類名,如com.project.TestCase删咱,此屬性并沒有默認值,并且類名必須得指定(就是個備份工具豪筝,將數(shù)據(jù)備份到云端的操作)

D痰滋、android:debuggable

這個從字面上就可以看出是什么作用的,當設(shè)置為true時续崖,表明該APP在手機上可以被調(diào)試敲街。默認為false,在false的情況下調(diào)試該APP,就會報以下錯誤:

Device XXX requires that applications explicitely declare themselves as debuggable in their manifest.
Application XXX does not have the attribute 'debuggable' set to TRUE in its manifest and cannot be debugged.

[圖片上傳中...(image-ae4d45-1538296610065-3)]

E严望、android:description/android:label

此兩個屬性都是為許可提供的多艇,均為字符串資源,當用戶去看許可列表(android:label)或者某個許可的詳細信息(android:description)時像吻,這些字符串資源就可以顯示給用戶峻黍。label應當盡量簡短,之需要告知用戶該許可是在保護什么功能就行拨匆。而description可以用于具體描述獲取該許可的程序可以做哪些事情姆涩,實際上讓用戶可以知道如果他們同意程序獲取該權(quán)限的話,該程序可以做什么惭每。我們通常用兩句話來描述許可骨饿,第一句描述該許可,第二句警告用戶如果批準該權(quán)限會可能有什么不好的事情發(fā)生

F台腥、android:enabled

Android系統(tǒng)是否能夠?qū)嵗搼贸绦虻慕M件宏赘,如果為true,每個組件的enabled屬性決定那個組件是否可以被 enabled黎侈。如果為false察署,它覆蓋組件指定的值;所有組件都是disabled峻汉。

G箕母、android:hasCode('true' or 'false')

表示此APP是否包含任何的代碼,默認為true俱济,若為false嘶是,則系統(tǒng)在運行組件時,不會去嘗試加載任何的APP代碼
一個應用程序自身不會含有任何的代碼蛛碌,除非內(nèi)置組件類聂喇,比如Activity類,此類使用了AliasActivity類,當然這是個罕見的現(xiàn)象
(在Android2.3可以用標準C來開發(fā)應用程序希太,可在androidManifest.xml中將此屬性設(shè)置為false,因為這個APP本身已經(jīng)不含有任何的JAVA代碼了)

H克饶、android:icon

這個很簡單,就是聲明整個APP的圖標誊辉,圖片一般都放在drawable文件夾下

I矾湃、android:killAfterRestore

是否復位需要重啟

J、android:manageSpaceActivity

讓應用手動管理應用的數(shù)據(jù)目錄

K堕澄、android:name

為應用程序所實現(xiàn)的Application子類的全名邀跃。當應用程序進程開始時,該類在所有應用程序組件之前被實例化蛙紫。
若該類(比方androidMain類)是在聲明的package下拍屑,則可以直接聲明android:name="androidMain",但此類是在package下面的子包的話,就必須聲明為全路徑或android:name="package名稱.子包名成.androidMain"

L坑傅、android:permission

設(shè)置許可名僵驰,這個屬性若在上定義的話,是一個給應用程序的所有組件設(shè)置許可的便捷方式唁毒,當然它是被各組件設(shè)置的許可名所覆蓋的

M蒜茴、android:presistent

該應用程序是否應該在任何時候都保持運行狀態(tài),默認為false。因為應用程序通常不應該設(shè)置本標識浆西,持續(xù)模式僅僅應該設(shè)置給某些系統(tǒng)應用程序才是有意義的矮男。

N、android:process

應用程序運行的進程名室谚,它的默認值為元素里設(shè)置的包名毡鉴,當然每個組件都可以通過設(shè)置該屬性來覆蓋默認值。如果你想兩個應用程序共用一個進程的話秒赤,你可以設(shè)置他們的android:process相同猪瞬,但前提條件是他們共享一個用戶ID及被賦予了相同證書的時候

O、android:restoreAnyVersion

同樣也是android2.2的一個新特性入篮,用來表明應用是否準備嘗試恢復所有的備份陈瘦,甚至該備份是比當前設(shè)備上更要新的版本,默認是false

P潮售、android:taskAffinity

擁有相同的affinity的Activity理論上屬于相同的Task痊项,應用程序默認的affinity的名字是元素中設(shè)定的package名

Q、android:theme

是一個資源的風格酥诽,它定義了一個默認的主題風格給所有的activity,當然也可以在自己的theme里面去設(shè)置它鞍泉,有點類似style。

3肮帐、第三層():屬性

<activity android:allowTaskReparenting=["true" | "false"] 
          android:alwaysRetainTaskState=["true" | "false"] 
          android:clearTaskOnLaunch=["true" | "false"] 
          android:configChanges=["mcc", "mnc", "locale", 
                                 "touchscreen", "keyboard", "keyboardHidden", 
                                 "navigation", "orientation", "screenLayout", 
                                 "fontScale", "uiMode"] 
          android:enabled=["true" | "false"] 
          android:excludeFromRecents=["true" | "false"] 
          android:exported=["true" | "false"] 
          android:finishOnTaskLaunch=["true" | "false"] 
          android:icon="drawable resource" 
          android:label="string resource" 
          android:launchMode=["multiple" | "singleTop" | 
                              "singleTask" | "singleInstance"] 
          android:multiprocess=["true" | "false"] 
          android:name="string" 
          android:noHistory=["true" | "false"]   
          android:permission="string" 
          android:process="string" 
          android:screenOrientation=["unspecified" | "user" | "behind" | 
                                     "landscape" | "portrait" | 
                                     "sensor" | "nosensor"] 
          android:stateNotNeeded=["true" | "false"] 
          android:taskAffinity="string" 
          android:theme="resource or theme" 
          android:windowSoftInputMode=["stateUnspecified", 
                                       "stateUnchanged", "stateHidden", 
                                       "stateAlwaysHidden", "stateVisible", 
                                       "stateAlwaysVisible", "adjustUnspecified", 
                                       "adjustResize", "adjustPan"] >    
</activity> 

[圖片上傳中...(image-2acf40-1538296610065-2)]

(注:有些在application中重復的就不多闡述了)

A咖驮、android:alwaysRetainTaskState

是否保留狀態(tài)不變边器, 比如切換回home, 再從新打開,activity處于最后的狀態(tài)托修。比如一個瀏覽器擁有很多狀態(tài)(當打開了多個TAB的時候)忘巧,用戶并不希望丟失這些狀態(tài)時,此時可將此屬性設(shè)置為true

B睦刃、android:clearTaskOnLaunch

比如 P 是 activity, Q 是被P 觸發(fā)的 activity, 然后返回Home, 重新啟動 P砚嘴,是否顯示 Q

C、android:configChanges

當配置list發(fā)生修改時涩拙, 是否調(diào)用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation". 這個我用過,主要用來看手機方向改變的. android手機在旋轉(zhuǎn)后,layout會重新布局, 如何做到呢?正常情況下. 如果手機旋轉(zhuǎn)了.當前Activity后殺掉,然后根據(jù)方向重新加載這個Activity. 就會從onCreate開始重新加載.如果你設(shè)置了 這個選項, 當手機旋轉(zhuǎn)后,當前Activity之后調(diào)用onConfigurationChanged() 方法. 而不跑onCreate方法等.

D际长、android:excludeFromRecents

是否可被顯示在最近打開的activity列表里,默認是false

E吃环、android:finishOnTaskLaunch

當用戶重新啟動這個任務(wù)的時候,是否關(guān)閉已打開的activity洋幻,默認是false如果這個屬性和allowTaskReparenting都是true,這個屬性就是王牌郁轻。Activity的親和力將被忽略。該Activity已經(jīng)被摧毀并非re-parented

F文留、android:launchMode(Activity加載模式)

在多Activity開發(fā)中好唯,有可能是自己應用之間的Activity跳轉(zhuǎn),或者夾帶其他應用的可復用Activity燥翅∑锔荩可能會希望跳轉(zhuǎn)到原來某個Activity實例,而不是產(chǎn)生大量重復的Activity森书。這需要為Activity配置特定的加載模式靶端,而不是使用默認的加載模式
Activity有四種加載模式:
standard、singleTop凛膏、singleTask杨名、singleInstance(其中前兩個是一組猜旬、后兩個是一組)福铅,默認為standard
standard:就是intent將發(fā)送給新的實例,所以每次跳轉(zhuǎn)都會生成新的activity匹涮。
singleTop:也是發(fā)送新的實例吁断,但不同standard的一點是趁蕊,在請求的Activity正好位于棧頂時(配置成singleTop的Activity),不會構(gòu)造新的實例
singleTask:和后面的singleInstance都只創(chuàng)建一個實例仔役,當intent到來掷伙,需要創(chuàng)建設(shè)置為singleTask的Activity的時候,系統(tǒng)會檢查棧里面是否已經(jīng)有該Activity的實例又兵。如果有直接將intent發(fā)送給它炎咖。
singleInstance:首先說明一下task這個概念,Task可以認為是一個棧,可放入多個Activity乘盼。比如啟動一個應用升熊,那么Android就創(chuàng)建了一個Task,然后啟動這個應用的入口Activity绸栅,那在它的界面上調(diào)用其他的Activity也只是在這個task里面级野。那如果在多個task中共享一個Activity的話怎么辦呢。舉個例來說粹胯,如果開啟一個導游服務(wù)類的應用程序蓖柔,里面有個Activity是開啟GOOGLE地圖的,當按下home鍵退回到主菜單又啟動GOOGLE地圖的應用時风纠,顯示的就是剛才的地圖况鸣,實際上是同一個Activity,實際上這就引入了singleInstance竹观。singleInstance模式就是將該Activity單獨放入一個棧中镐捧,這樣這個棧中只有這一個Activity,不同應用的intent都由這個Activity接收和展示臭增,這樣就做到了共享懂酱。當然前提是這些應用都沒有被銷毀,所以剛才是按下的HOME鍵誊抛,如果按下了返回鍵列牺,則無效

G、android:multiprocess

是否允許多進程拗窃,默認是false
在實際開發(fā)中瞎领,CP有以下兩種用法:
1)和應用在一個APK包里
這種情況下和應用在同一進程中。process name和uid都一樣随夸。
2)單獨在一個APK包里默刚。
這種情況下,如果在AndroidManifest.xml文件里聲明了和某個進程同屬一個進程逃魄,如:

package="com.android.providers.telephony" 
android:sharedUserId="android.uid.phone">                 
android:allowClearUserData="false"                  
android:label="Dialer Storage"                  
android:icon="@drawable/ic_launcher_phone">   
android:authorities="telephony"  
android:multiprocess="true" /> 

[圖片上傳中...(image-514d5a-1538296610065-1)]

這個里面通過android:sharedUserId="android.uid.phone"和android:process="com.android.phone"聲明了該CP是和phone進程同屬一個進程荤西,擁有同樣的process name和uid.
如果沒有上述聲明,那么該CP是在獨立的進程中伍俘,擁有屬于自己的process name和uid.
以上兩種用法可以總結(jié)為:
1)CP和某個進程同屬一個進程
這種情況下邪锌,當該進程啟動時,會搜索屬于該進程的所有CP,并加載癌瘾。
2)CP屬于獨立的一個進程觅丰。
這種情況下,只有需要用到該CP時妨退,才會去加載妇萄。
那么蜕企,當一個進程想要操作一個CP時,先需要獲取該CP的對象冠句,系統(tǒng)是如何處理呢:
1)如果該CP屬于當前主叫進程轻掩,因為在進程啟動時就已經(jīng)加載過了,所以系統(tǒng)會直接返回該CP的對象懦底。
2)如果該CP不屬于當前主叫進程唇牧,那么系統(tǒng)會進行相關(guān)處理(由ActivityManagerService進行,以下簡稱為AMS):
所有已加載的CP信息都已保存在AMS中聚唐。當需要獲取某個CP的對象時丐重,AMS會先判斷該CP是否已被加載
----如果已被加載,該CP和當前主叫進程不屬一個進程杆查,但是該CP設(shè)置了multiprocess的屬性(如上例中的android:multiprocess="true")扮惦,并且該CP屬于系統(tǒng)級CP,那么就在當前主叫進程內(nèi)部新生成該CP的對象亲桦。否則就需要通過IPC機制進行調(diào)用崖蜜。
----如果還未被加載,該CP和當前主叫進程不屬一個進程烙肺,但是該CP設(shè)置了multiprocess的屬性(如上例中的android:multiprocess="true")纳猪,并且該CP屬于系統(tǒng)級CP氧卧,那么就在當前主叫進程內(nèi)部新生成該CP的對象桃笙。否則就需要先創(chuàng)建該CP所在的進程,然后再通過IPC機制進行調(diào)用沙绝。

H搏明、android:noHistory

當用戶從Activity上離開并且它在屏幕上不再可見時,Activity是否從Activity stack中清除并結(jié)束闪檬。默認是false星著。Activity不會留下歷史痕跡

I、android:screenOrientation

activity顯示的模式
默認為unspecified:由系統(tǒng)自動判斷顯示方向
landscape橫屏模式粗悯,寬度比高度大
portrait豎屏模式, 高度比寬度大
user模式虚循,用戶當前首選的方向
behind模式:和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
sensor模式:有物理的感應器來決定。如果用戶旋轉(zhuǎn)設(shè)備這屏幕會橫豎屏切換
nosensor模式:忽略物理感應器样傍,這樣就不會隨著用戶旋轉(zhuǎn)設(shè)備而更改了

J横缔、android:stateNotNeeded

activity被銷毀或者成功重啟時是否保存狀態(tài)

K、android:windowSoftInputMode

activity主窗口與軟鍵盤的交互模式衫哥,可以用來避免輸入法面板遮擋問題茎刚,Android1.5后的一個新特性。
這個屬性能影響兩件事情:
【A】當有焦點產(chǎn)生時撤逢,軟鍵盤是隱藏還是顯示
【B】是否減少活動主窗口大小以便騰出空間放軟鍵盤
各值的含義:
【A】stateUnspecified:軟鍵盤的狀態(tài)并沒有指定膛锭,系統(tǒng)將選擇一個合適的狀態(tài)或依賴于主題的設(shè)置
【B】stateUnchanged:當這個activity出現(xiàn)時粮坞,軟鍵盤將一直保持在上一個activity里的狀態(tài),無論是隱藏還是顯示
【C】stateHidden:用戶選擇activity時初狰,軟鍵盤總是被隱藏
【D】stateAlwaysHidden:當該Activity主窗口獲取焦點時莫杈,軟鍵盤也總是被隱藏的
【E】stateVisible:軟鍵盤通常是可見的
【F】stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態(tài)
【G】adjustUnspecified:默認設(shè)置跷究,通常由系統(tǒng)自行決定是隱藏還是顯示
【H】adjustResize:該Activity總是調(diào)整屏幕的大小以便留出軟鍵盤的空間
【I】adjustPan:當前窗口的內(nèi)容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內(nèi)容的部分

4姓迅、第四層()

結(jié)構(gòu)圖:

<intent-filter  android:icon="drawable resource" 
               android:label="string resource" 
               android:priority="integer" > 
      <action /> 
      <category /> 
      <data /> 
</intent-filter>    

[圖片上傳中...(image-6148a7-1538296610065-0)]

A、intent-filter屬性

android:priority(解釋:有序廣播主要是按照聲明的優(yōu)先級別俊马,如A的級別高于B丁存,那么,廣播先傳給A柴我,再傳給B解寝。優(yōu)先級別就是用設(shè)置priority屬性來確定,范圍是從-1000~1000艘儒,數(shù)越大優(yōu)先級別越高)Intent filter內(nèi)會設(shè)定的資料包括action,data與category三種聋伦。也就是說filter只會與intent里的這三種資料作對比動作

B、action屬性

action很簡單界睁,只有android:name這個屬性觉增。常見的android:name值為android.intent.action.MAIN,表明此activity是作為應用程序的入口翻斟。
有關(guān)android:name的具體值:
String ADD_SHORTCUT_ACTION 動作:
在系統(tǒng)中添加一個快捷方式逾礁。
"android.intent.action.ADD_SHORTCUT" String ALL_APPS_ACTION 動作:
列舉所有可用的應用。
"android.intent.action.ALL_APPS" String ALTERNATIVE_CATEGORY 類別:
說明 activity 是用戶正在瀏覽的數(shù)據(jù)的一個可選操作访惜。輸入:無嘹履。
"android.intent.category.ALTERNATIVE" String ANSWER_ACTION 動作:
處理撥入的電話。
"android.intent.action.ANSWER" String BATTERY_CHANGED_ACTION 廣播:
充電狀態(tài)债热,或者電池的電量發(fā)生變化砾嫉。
"android.intent.action.BATTERY_CHANGED" String BOOT_COMPLETED_ACTION 廣播:
在系統(tǒng)啟動后,這個動作被廣播一次(只有一次)窒篱。
"android.intent.action.BOOT_COMPLETED" String BROWSABLE_CATEGORY 類別:
能夠被瀏覽器安全使用的 activities 必須支持這個類別焕刮。
"android.intent.category.BROWSABLE" String BUG_REPORT_ACTION 動作:
顯示 activity 報告錯誤。
"android.intent.action.BUG_REPORT" String CALL_ACTION 動作:
撥打電話墙杯,被呼叫的聯(lián)系人在數(shù)據(jù)中指定配并。
"android.intent.action.CALL" String CALL_FORWARDING_STATE_CHANGED_ACTION 廣播:
語音電話的呼叫轉(zhuǎn)移狀態(tài)已經(jīng)改變。
"android.intent.action.CFF" String CLEAR_CREDENTIALS_ACTION 動作:
清除登陸憑證 (credential)霍转。
"android.intent.action.CLEAR_CREDENTIALS" String CONFIGURATION_CHANGED_ACTION 廣播:
設(shè)備的配置信息已經(jīng)改變荐绝。
String DATA_ACTIVITY_STATE_CHANGED_ACTION 廣播:
電話的數(shù)據(jù)活動(data activity)狀態(tài)(即收發(fā)數(shù)據(jù)的狀態(tài))已經(jīng)改變。 "android.intent.action.DATA_ACTIVITY" String DATA_CONNECTION_STATE_CHANGED_ACTION 廣播:電話的數(shù)據(jù)連接狀態(tài)已經(jīng)改變避消。
"android.intent.action.DATA_STATE" String DATE_CHANGED_ACTION 廣播:
日期被改變低滩。
"android.intent.action.DATE_CHANGED" String DEFAULT_ACTION 動作:
和 VIEW_ACTION 相同召夹,是在數(shù)據(jù)上執(zhí)行的標準動作。
"android.intent.action.VIEW" String DEFAULT_CATEGORY 類別:
如果 activity 是對數(shù)據(jù)執(zhí)行確省動作(點擊, center press)的一個選項恕沫,需要設(shè)置這個類別监憎。 "android.intent.category.DEFAULT" String DELETE_ACTION 動作:
從容器中刪除給定的數(shù)據(jù)。
"android.intent.action.DELETE" String DEVELOPMENT_PREFERENCE_CATEGORY 類別:
說明 activity 是一個設(shè)置面板 (development preference panel). "android.intent.category.DEVELOPMENT_PREFERENCE" String DIAL_ACTION 動作:
撥打數(shù)據(jù)中指定的電話號碼婶溯。
"android.intent.action.DIAL String EDIT_ACTION 動作:
為制定的數(shù)據(jù)顯示可編輯界面鲸阔。
"android.intent.action.EDIT" String EMBED_CATEGORY 類別:
能夠在上級(父)activity 中運行。
"android.intent.category.EMBED" String EMERGENCY_DIAL_ACTION 動作:
撥打緊急電話號碼迄委。
"android.intent.action.EMERGENCY_DIAL" int FORWARD_RESULT_LAUNCH 啟動標記:
如果這個標記被設(shè)置褐筛,而且被一個已經(jīng)存在的 activity 用來啟動新的 activity,已有 activity 的回復目標 (reply target) 會被轉(zhuǎn)移給新的 activity叙身。
16 0x00000010 String FOTA_CANCEL_ACTION 廣播:
取消所有被掛起的 (pending) 更新下載渔扎。
"android.server.checkin.FOTA_CANCEL" String FOTA_INSTALL_ACTION 廣播:
更新已經(jīng)被確認,馬上就要開始安裝信轿。
"android.server.checkin.FOTA_INSTALL" String FOTA_READY_ACTION 廣播:
更新已經(jīng)被下載晃痴,可以開始安裝。
"android.server.checkin.FOTA_READY" String FOTA_RESTART_ACTION 廣播:
恢復已經(jīng)停止的更新下載财忽。
"android.server.checkin.FOTA_RESTART" String FOTA_UPDATE_ACTION 廣播:
通過 OTA 下載并安裝操作系統(tǒng)更新倘核。
"android.server.checkin.FOTA_UPDATE" String FRAMEWORK_INSTRUMENTATION_TEST_CATEGORY 類別:
作為代碼框架下儀器的測試。
"android.intent.category.FRAMEWORK_INSTRUMENTATION_TEST" String GADGET_CATEGORY 類別:這個 activity 可以被嵌入宿主 activity (activity that is hosting gadgets)即彪。 "android.intent.category.GADGET" String GET_CONTENT_ACTION 動作:
讓用戶選擇數(shù)據(jù)并返回紧唱。
"android.intent.action.GET_CONTENT" String HOME_CATEGORY 類別:
主屏幕 (activity),設(shè)備啟動后顯示的第一個 activity祖凫。
"android.intent.category.HOME" String INSERT_ACTION 動作:
在容器中插入一個空項 (item)琼蚯。
"android.intent.action.INSERT" String INTENT_EXTRA 附加數(shù)據(jù):
和PICK_ACTIVITY_ACTION 一起使用時酬凳,說明用戶選擇的用來顯示的 activity惠况;
和ADD_SHORTCUT_ACTION 一起使用的時候,描述要添加的快捷方式宁仔。 "android.intent.extra.INTENT" String LABEL_EXTRA 附加數(shù)據(jù):
大寫字母開頭的字符標簽稠屠,和 ADD_SHORTCUT_ACTION 一起使用。
"android.intent.extra.LABEL" String LAUNCHER_CATEGORY 類別:
Activity 應該被顯示在頂級的launcher 中翎苫。
"android.intent.category.LAUNCHER" String LOGIN_ACTION 動作:
獲取登錄憑證权埠。
"android.intent.action.LOGIN" String MAIN_ACTION 動作:
作為主入口點啟動,不需要數(shù)據(jù)煎谍。
"android.intent.action.MAIN" String MEDIABUTTON_ACTION 廣播:
用戶按下了“Media Button”攘蔽。
"android.intent.action.MEDIABUTTON" String MEDIA_BAD_REMOVAL_ACTION 廣播:
擴展介質(zhì)(擴展卡)已經(jīng)從 SD 卡插槽拔出,但是掛載點 (mount point) 還沒解除 (unmount)呐粘。 "android.intent.action.MEDIA_BAD_REMOVAL" String MEDIA_EJECT_ACTION 廣播:
用戶想要移除擴展介質(zhì)(拔掉擴展卡)满俗。
"android.intent.action.MEDIA_EJECT" String MEDIA_MOUNTED_ACTION 廣播:
擴展介質(zhì)被插入转捕,而且已經(jīng)被掛載。
"android.intent.action.MEDIA_MOUNTED" String MEDIA_REMOVED_ACTION 廣播:
擴展介質(zhì)被移除唆垃。
"android.intent.action.MEDIA_REMOVED" String MEDIA_SCANNER_FINISHED_ACTION 廣播:
已經(jīng)掃描完介質(zhì)的一個目錄五芝。
"android.intent.action.MEDIA_SCANNER_FINISHED" String MEDIA_SCANNER_STARTED_ACTION 廣播:
開始掃描介質(zhì)的一個目錄。
"android.intent.action.MEDIA_SCANNER_STARTED" String MEDIA_SHARED_ACTION 廣播:
擴展介質(zhì)的掛載被解除 (unmount)辕万,因為它已經(jīng)作為 USB 大容量存儲被共享枢步。 "android.intent.action.MEDIA_SHARED" String MEDIA_UNMOUNTED_ACTION 廣播:
擴展介質(zhì)存在,但是還沒有被掛載 (mount)渐尿。
"android.intent.action.MEDIA_UNMOUNTED" String MESSAGE_WAITING_STATE_CHANGED_ACTION 廣播:
電話的消息等待(語音郵件)狀態(tài)已經(jīng)改變醉途。
"android.intent.action.MWI" int MULTIPLE_TASK_LAUNCH 啟動標記:
和 NEW_TASK_LAUNCH 聯(lián)合使用,禁止將已有的任務(wù)改變?yōu)榍熬叭蝿?wù) (foreground)砖茸。
8 0x00000008 String NETWORK_TICKLE_RECEIVED_ACTION 廣播:
設(shè)備收到了新的網(wǎng)絡(luò) "tickle" 通知结蟋。
"android.intent.action.NETWORK_TICKLE_RECEIVED" int NEW_TASK_LAUNCH 啟動標記:
設(shè)置以后,activity 將成為歷史堆棧中的第一個新任務(wù)(棧頂)渔彰。
4 0x00000004 int NO_HISTORY_LAUNCH 啟動標記:
設(shè)置以后嵌屎,新的 activity 不會被保存在歷史堆棧中。
1 0x00000001 String PACKAGE_ADDED_ACTION 廣播:
設(shè)備上新安裝了一個應用程序包恍涂。
"android.intent.action.PACKAGE_ADDED" String PACKAGE_REMOVED_ACTION 廣播:
設(shè)備上刪除了一個應用程序包宝惰。
"android.intent.action.PACKAGE_REMOVED" String PHONE_STATE_CHANGED_ACTION 廣播:
電話狀態(tài)已經(jīng)改變。
"android.intent.action.PHONE_STATE" String PICK_ACTION 動作:
從數(shù)據(jù)中選擇一個項目 (item)再沧,將被選中的項目返回尼夺。
"android.intent.action.PICK" String PICK_ACTIVITY_ACTION 動作:
選擇一個activity,返回被選擇的 activity 的類(名)炒瘸。
"android.intent.action.PICK_ACTIVITY" String PREFERENCE_CATEGORY 類別:
activity是一個設(shè)置面板 (preference panel)淤堵。
"android.intent.category.PREFERENCE" String PROVIDER_CHANGED_ACTION 廣播:
更新將要(真正)被安裝。
"android.intent.action.PROVIDER_CHANGED" String PROVISIONING_CHECK_ACTION 廣播:
要求 polling of provisioning service 下載最新的設(shè)置顷扩。 "android.intent.action.PROVISIONING_CHECK" String RUN_ACTION 動作:
運行數(shù)據(jù)(指定的應用)拐邪,無論它(應用)是什么。
"android.intent.action.RUN" String SAMPLE_CODE_CATEGORY 類別:
作為一個示例代碼例子(不是普通用戶體驗的一部分)隘截。 "android.intent.category.SAMPLE_CODE" String SCREEN_OFF_ACTION 廣播:
屏幕被關(guān)閉扎阶。
"android.intent.action.SCREEN_OFF" String SCREEN_ON_ACTION 廣播:
屏幕已經(jīng)被打開。
"android.intent.action.SCREEN_ON" String SELECTED_ALTERNATIVE_CATEGORY 類別:
對于被用戶選中的數(shù)據(jù)婶芭,activity 是它的一個可選操作东臀。 "android.intent.category.SELECTED_ALTERNATIVE" String SENDTO_ACTION 動作:
向 data 指定的接收者發(fā)送一個消息。
"android.intent.action.SENDTO" String SERVICE_STATE_CHANGED_ACTION 廣播:
電話服務(wù)的狀態(tài)已經(jīng)改變犀农。
"android.intent.action.SERVICE_STATE" String SETTINGS_ACTION 動作:
顯示系統(tǒng)設(shè)置惰赋。輸入:無。
"android.intent.action.SETTINGS" String SIGNAL_STRENGTH_CHANGED_ACTION 廣播:
電話的信號強度已經(jīng)改變呵哨。
"android.intent.action.SIG_STR" int SINGLE_TOP_LAUNCH 啟動標記:
設(shè)置以后赁濒,如果 activity 已經(jīng)啟動贵扰,而且位于歷史堆棧的頂端,將不再啟動(不重新啟動) activity流部。 2 0x00000002 String STATISTICS_REPORT_ACTION 廣播:
要求 receivers 報告自己的統(tǒng)計信息戚绕。
"android.intent.action.STATISTICS_REPORT" String STATISTICS_STATE_CHANGED_ACTION 廣播:
統(tǒng)計信息服務(wù)的狀態(tài)已經(jīng)改變。
"android.intent.action.STATISTICS_STATE_CHANGED" String SYNC_ACTION 動作:
執(zhí)行數(shù)據(jù)同步枝冀。
"android.intent.action.SYNC" String TAB_CATEGORY 類別:
這個 activity 應該在 TabActivity 中作為一個 tab 使用舞丛。
"android.intent.category.TAB" String TEMPLATE_EXTRA 附加數(shù)據(jù):
新記錄的初始化模板。
"android.intent.extra.TEMPLATE" String TEST_CATEGORY 類別:
作為測試目的使用果漾,不是正常的用戶體驗的一部分球切。
"android.intent.category.TEST" String TIMEZONE_CHANGED_ACTION 廣播:
時區(qū)已經(jīng)改變。
"android.intent.action.TIMEZONE_CHANGED" String TIME_CHANGED_ACTION 廣播:
時間已經(jīng)改變(重新設(shè)置)绒障。
"android.intent.action.TIME_SET" String TIME_TICK_ACTION 廣播:
當前時間已經(jīng)變化(正常的時間流逝)吨凑。
"android.intent.action.TIME_TICK" String UMS_CONNECTED_ACTION 廣播:
設(shè)備進入 USB 大容量存儲模式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末户辱,一起剝皮案震驚了整個濱河市鸵钝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庐镐,老刑警劉巖恩商,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異必逆,居然都是意外死亡怠堪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門名眉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粟矿,“玉大人,你說我怎么就攤上這事损拢∧按猓” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵探橱,是天一觀的道長申屹。 經(jīng)常有香客問我绘证,道長隧膏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任嚷那,我火速辦了婚禮胞枕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘魏宽。我一直安慰自己腐泻,他們只是感情好决乎,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著派桩,像睡著了一般构诚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铆惑,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天范嘱,我揣著相機與錄音,去河邊找鬼员魏。 笑死丑蛤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的撕阎。 我是一名探鬼主播受裹,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虏束!你這毒婦竟也來了棉饶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤镇匀,失蹤者是張志新(化名)和其女友劉穎砰盐,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坑律,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡岩梳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晃择。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冀值。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宫屠,靈堂內(nèi)的尸體忽然破棺而出列疗,到底是詐尸還是另有隱情,我是刑警寧澤浪蹂,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布抵栈,位于F島的核電站,受9級特大地震影響坤次,放射性物質(zhì)發(fā)生泄漏古劲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一缰猴、第九天 我趴在偏房一處隱蔽的房頂上張望产艾。 院中可真熱鬧,春花似錦、人聲如沸闷堡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杠览。三九已至弯菊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間踱阿,已是汗流浹背误续。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扫茅,地道東北人蹋嵌。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像葫隙,于是被迫代替她去往敵國和親栽烂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,312評論 25 707
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程恋脚,因...
    小菜c閱讀 6,444評論 0 17
  • 用兩張圖告訴你腺办,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,749評論 2 59
  • 夕陽西下糟描,窄窄的天橋上涌動的下班人群怀喉,夕陽照耀在他們聰慧的腦袋上,仿佛人類的智慧在發(fā)光船响,我像個嬰兒躬拢,捕捉到這一幕,...
    木子的星空6666閱讀 317評論 1 0
  • 今天下午我們一家人去了姑姑家见间,媽媽給小表妹買了一個很可愛的帽子聊闯。我把自己小時候戴過的小紅帽送給了她。小表妹叫:桂子...
    wawda閱讀 317評論 1 4