<receiverandroid:enabled=["true" | "false"]
android:exported=["true" | "false"]
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permission="string"
android:process="string">
. . .
</receiver> html
被包含於(CONTAINED IN): android
<application> app
可以包含的元素(CAN CONTAIN): ide
<intent-filter> 性能
<meta-data> ui
說明(DESCRIPTION): spa
這個元素用於聲明一個廣播接收器(一個BroadcastReceiver 子類),做爲應用程序的組件之一。廣播接收器可以讓應用程序接收那些由系統或其餘應用程序發出的廣播Intent對象,即便是在該應用程序的其餘組件沒有運行的時候,也可以接收來自系統或其餘應用程序的廣播消息。 htm
有兩種方式讓系統知道本應用程序用戶一個廣播接收器: 對象
1. 在應用程序的清單文件中,使用本元素來聲明註冊一個廣播接收器; 進程
2. 在代碼中動態的建立一個廣播接收器,並使用Context.registerReceiver()方法來註冊它。有關更多動態建立接收器的方法,請看BoradcastReceiver類說明。
屬性(ATTRIBUTES):
android:enabled
這個屬性用於定義系統是否可以實例化這個廣播接收器,若是設置爲true,則可以實例化,若是設置爲false,則不能被實例化。默認值是true。
<application>元素有它本身的enabled屬性,這個屬性會應用給應用程序的全部組件,包括廣播接收器。<application>和<receiver>元素的這個屬性都必須是true,這個廣播接收器纔可以被啓用。若是有一個被設置爲false,該廣播接收器會被禁止實例化。
android:exported
這個屬性用於指示該廣播接收器是否可以接收來自應用程序外部的消息,若是設置true,則可以接收,若是設置爲false,則不可以接收。若是設置爲false,這該接收只能接收那些由相同應用程序組件或帶有相同用戶ID的應用程序所發出的消息。
它的默認值依賴它所包含的Intent過濾器。若是不包含過濾器,則接收器只能由指定了明確類名的Intent對象來調用,這就意味着該接收器只能在應用程序內部使用(由於一般在應用程序外部是不會知道這個類名的)。這種狀況下默認值就是false。另外一方面,若是接受器至少包含了一個過濾器,那麼就意味着這個接收器可以接收來自系統或其餘應用程序的Intent對象,所以默認值是true。
這個屬性不是惟一的限制廣播接收外部調用的方法,還可以經過全限來限制可以給它發送消息的外部實體。
android:icon
這個屬性定義了一個表明廣播接收器的圖標,這個屬性必須用包含圖片定義的可繪製資源來設定。若是沒有設置這個屬性,會是應用<application>元素的icon屬性值來代替。
不管是這個屬性仍是<application>元素的icon屬性,它們設置的圖標也是全部的接收器的Intent過濾器的默認圖標。
android:label
這個屬性給廣播接收器設定一個用戶可讀的懂的文本標籤。若是這個屬性沒有設置,那麼就會使用<application>元素的label屬性值來代替。
不管是這個屬性仍是<application>元素的label屬性,它們設置的標籤也是全部的接收器的Intent過濾器的默認標籤。
應該使用一個字符串資源來設置這個屬性,以便它可以像用戶界面中的其餘字符串同樣可以被本地化。可是,爲了應用開發的便利,也可以使用原生的字符串來設置。
android:name
這個屬性值要用廣播接收器的實現類的類名來設置,它是BroadcastReceiver類的一個子類。一般要使用類的全名來設置(如:com.example.project.ReportReceiver)。可是,也可使用簡寫(如:.ReportReceiver)。系統會自動的把<manifest>元素中的package屬性所設定的包名添加到這個簡寫的名稱上。
一旦發佈了應用程序,就不該該在改變這個名字了(除非android:exported=」false」)。
這個屬性沒有默認值,這個名字必須被指定。
android:permission
這個屬性用於定義把消息發送給該廣播接收器的廣播器所必需要有的權限。若是沒有設置這個屬性,那麼<application>元素的permission屬性所設置的權限就適用於這個廣播接收器。若是<application>元素也沒有設置權限,那麼該接收器就不授權限的保護。
android:process
這個屬性用於設置該廣播接收器應該運行在那個進程中的進程名。一般,應用程序的全部組件都在給應用程序建立的默認進程中運行,它有與應用程序包名相同的名稱。<application>元素的process屬性可以給它的全部組件設置一個不一樣的默認進程,可是它的每一個組件本身的process屬性可以覆蓋這個默認設置,這樣就容許把一個應用程序分離到多個進程中。
若是這個屬性值用「:」開頭,則在須要的時候系統會建立一個新的,應用程序私有的進程,而且該廣播接收器也會運行在這個進程中。若是這個屬性值用小寫字母開頭,那麼接收器就會運行在以這個屬性值命名的全局進程中,它提供使其工做的權限。這樣就容許不一樣的應用程序組件來共享這個進程。