Android官方文檔—APP清單()

<service>

語法:

    <service android:enabled=["true" | "false"]
             android:exported=["true" | "false"]
             android:icon="drawable resource"
             android:isolatedProcess=["true" | "false"]
             android:label="string resource"
             android:name="string"
             android:permission="string"
             android:process="string" >
        . . .
    </service>

包含於:

<application>

可以包含:

<intent-filter>
<meta-data>

說明:

聲明服務(服務子類)作爲應用程序的組件之一。與活動不同,服務缺乏可視化用戶界面。它們用於實現長時間運行的後臺操作或可由其他應用程序調用的豐富通信API。

所有服務必須由清單文件中的<service>元素表示。任何未在此處聲明的內容都不會被系統看到,也永遠不會被運行。

屬性:

android:enabled

服務是否可以由系統實例化 - 如果可以,則爲“true”,否則爲“false”。默認值是true”。

<application>元素具有自己的enabled屬性,該屬性適用於所有應用程序組件,包括服務。對於要啓用的服務,<application>和<service>屬性必須都爲“true”(因爲它們都是默認值)。如果其中任何一個爲“假”,則禁用該服務;它無法實例化。

android:exported

其他應用程序的組件是否可以調用服務或與之交互 - 如果可以,則爲“true”,否則爲“false”。當值爲“false”時,只有相同應用程序的組件或具有相同用戶ID的應用程序才能啓動服務或綁定到該服務。

默認值取決於服務是否包含意圖過濾器。缺少任何過濾器意味着只能通過指定其確切的類名來調用它。這意味着該服務僅供應用程序內部使用(因爲其他人不知道類名)。所以在這種情況下,默認值爲“false”。另一方面,至少一個過濾器的存在意味着該服務旨在供外部使用,因此默認值爲“true”。

此屬性不是限制服務暴露給其他應用程序的唯一方法。您還可以使用權限來限制可以與服務交互的外部實體(請參閱權限屬性)。

android:icon

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

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

android:isolatedProcess

如果設置爲true,則此服務將在與系統其餘部分隔離的特殊進程下運行,並且沒有自己的權限。與它的唯一通信是通過Service API(綁定和啓動)。

android:label

可以向用戶顯示的服務的名稱。如果未設置此屬性,則使用整個應用程序的標籤集(請參閱<application>元素的label屬性)。

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

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

android:name

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

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

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

android:permission

實體必須具有的權限的名稱才能啓動服務或綁定到該服務。如果startService(),bindService()或stopService()的調用者未被授予此權限,則該方法將不起作用,並且Intent對象將不會傳遞給該服務。

如果未設置此屬性,則<application>元素的權限屬性設置的權限適用於該服務。如果兩個屬性均未設置,則該服務不受權限保護。

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

android:process

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

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

參閱:

<application>
<activity>

引入於:

API Level 1

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