Android官方文檔—APP清單()

<receiver>

語法:

<receiver android: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>

包含於:

<application>

可以包含:

<intent-filter>
<meta-data>

說明:

聲明廣播接收器(BroadcastReceiver子類)作爲應用程序的組件之一。廣播接收器使應用程序能夠接收由系統或其他應用程序廣播的意圖,即使應用程序的其他組件未運行也是如此。

有兩種方法可以使系統知道廣播接收器:一種是使用此元素在清單文件中聲明它。另一種是在代碼中動態創建接收器並使用Context.registerReceiver()方法註冊它。有關動態創建的接收器的更多信息,請參閱BroadcastReceiver類描述。

屬性:

android:enabled

廣播接收器是否可以由系統實例化 - 如果可以,則爲“true”,否則爲“false”。默認值是true”。

<application>元素具有自己的enabled屬性,適用於所有應用程序組件,包括廣播接收器。 <application>和<receiver>屬性必須都爲“true”才能啓用廣播接收器。如果其中任何一個是“假”,則禁用;它無法實例化。

android:exported

廣播接收器是否可以從其應用程序之外的源接收消息 - 如果可以,則爲“true”,否則爲“false”。如果爲“假”,則廣播接收器可以接收的唯一消息是由相同應用程序的組件或具有相同用戶ID的應用程序發送的消息。

默認值取決於廣播接收器是否包含意圖過濾器。缺少任何過濾器意味着只能由指定其確切類名的Intent對象調用它。這意味着接收器僅供應用程序內部使用(因爲其他人通常不知道類名)。所以在這種情況下,默認值爲“false”。另一方面,至少一個過濾器的存在意味着廣播接收器旨在接收由系統或其他應用程序廣播的意圖,因此默認值是“真”。

此屬性不是限制廣播接收器外部曝光的唯一方法。您還可以使用權限來限制可以向其發送消息的外部實體(請參閱權限屬性)。

android:icon

表示廣播接收器的圖標。必須將此屬性設置爲對包含圖像定義的可繪製資源的引用。如果未設置,則使用爲整個應用程序指定的圖標(請參閱<application>元素的圖標屬性)。

廣播接收器的圖標 - 無論是在此處設置還是由<application>元素設置 - 也是所有接收器的intent過濾器的默認圖標(請參閱<intent-filter>元素的圖標屬性)。

android:label

廣播接收器的用戶可讀標籤。如果未設置此屬性,則使用整個應用程序的標籤集(請參閱<application>元素的label屬性)。

廣播接收器的標籤 - 無論是在此處設置還是由<application>元素設置 - 也是所有接收器的intent過濾器的默認標籤(請參閱<intent-filter>元素的label屬性)。

應將標籤設置爲對字符串資源的引用,以便它可以像用戶界面中的其他字符串一樣進行本地化。但是,爲了方便您開發應用程序,它也可以設置爲原始字符串。

android:name

實現廣播接收器的類的名稱,BroadcastReceiver的子類。這應該是一個完全限定的類名(例如“com.example.project.ReportReceiver”)。但是,作爲簡寫,如果名稱的第一個字符是句點(例如,“。ReportReceiver”),則它將附加到<manifest>元素中指定的包名稱。

布應用程序後,不應更改此名稱(除非您已設置android:exported =“false”)。

沒有默認值。必須指定名稱。

android:permission

廣播公司必須具有向廣播接收器發送消息的權限的名稱。如果未設置此屬性,則<application>元素的權限屬性設置的權限適用於廣播接收器。如果兩個屬性均未設置,則接收方不受權限保護。

有關權限的更多信息,請參閱簡介中的“權限”部分和單獨的文檔“安全性和權限”。

android:process

廣播接收器應運行的進程的名稱。通常,應用程序的所有組件都在爲應用程序創建的默認進程中運行。它與應用程序包的名稱相同。 <application>元素的process屬性可以爲所有組件設置不同的默認值。但是每個組件都可以使用自己的流程屬性覆蓋默認值,從而允許您跨多個流程分佈應用程序。

如果分配給此屬性的名稱以冒號(':')開頭,則在需要時創建一個專用於應用程序的新進程,並且廣播接收器在該進程中運行。如果進程名稱以小寫字符開頭,則接收方將在該名稱的全局進程中運行,前提是它有權這樣做。這允許不同應用程序中的組件共享進程,從而減少資源使用。

引入於:

API Level 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章