編輯:關於Android編程
語法
<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>
描述
聲明一個作為應用組件的service(Service的子類)。和activities不同的是,services缺乏可視化的用戶接口。它們用來實現長期運行的後台操作或由其它應用調用的富通信API。
所有的services都必須在manifest文件中通過<service>元素來表示。沒有在manifest中聲明的將對系統不可見並且絕不會運行。
屬性
android:enabled
是否這個service能被系統實例化-如果能則為true,否則為false。默認為true。
<application>元素有它自身的能應用到所有應用組件的enabled屬性,包括services。要是這個service要enabled,那麼這個<application>和<service>屬性都必須為true(它們都是默認值)。如果有一個為false,這個服務就會disabled;它就不會被實例化。
android:exported
是否其它應用組件能調用這個service或同它交互-如果能則為true,否則為false。當值為false時,只有同一個應用的組件或有相同用戶ID的應用能啟動這個服務或綁定它。
默認值依賴於服務是否包含intent filters。過濾器的缺失意味著它只能通過指定它准確類名來調用它。這就意味著這個服務只能在應用內部被使用(因為其它應用不知道類名)。因此,在這種情況下,默認值是false。另一方面,至少有一個過濾器意味著這個服務可以在外部被使用,因此,默認值為true。
這個屬性並非是限制這個服務暴漏給其它服務的唯一途徑。你也能通過權限來限制跟服務交互的外部實體(參見permisson屬性)。
android:icon
服務呈現的圖標。這個屬性必須被設置為包含圖片的drawable資源的引用。如果沒有設置,那麼這個application的圖標將代替它(參見<application>元素的icon屬性)。
對所有的intent filters來說,這個服務的圖標無論是自身設置的還是通過<application>設置的,都是它們的默認圖標(參見<intent-filter>元素的icon屬性)。
android:isolatedProcess
如果設置為true,這個服務將運行在專門的進程中,這個進程從系統的剩余部分獨立出來,它自身沒有權限。同它唯一的通信方式就是通過這個Service API(binding或starting)。
android:label
這個服務給用戶顯示的名稱。如果這個屬性沒有設置,將使用<application>的label屬性代替(參見<appliation>元素的label屬性)。
這個服務的label,無論是通過自身設置的,還是通過application設置的,對於這個service的intent filters來說都是默認值(參見<intent-filter>元素的label屬性)。
這個label應當設置為string資源的引用,以便在用戶接口中能同其它string資源一樣本地化。然而,在開發應用時為了方便起見,它也能被設置為raw串。
android:name
實現這個service的Service子類名稱。這應當是完整格式的類名(例如,“com.example.project.RoomService”)。然而,作為一個簡寫,如果名稱的第一個字母是點(例如,“.RoomService”), 它會被添加到在<manifest>元素中聲明的包名後面。
一旦你發布了你的應用,你就不要修改這個名字(除非你設置了android:exported=false)。
沒有默認值,這個名稱必須被指定。
android:permission
為了啟動這個service或綁定到它一個實體必須要有的權限的名稱。如果startService(),bindService()或stopService()的調用者還沒有獲取這個授權,那麼這些方法就不會工作,而且這個intent對象也不會傳遞到service。
如果這個屬性沒有設置,由<application>元素的permission屬性設置的權限就會應用到這個service。如果都沒有設置,那麼這個服務就不再受權限保護。
android:process
服務將要運行的進程名稱。一般來講,應用的所有組件都運行在應用創建的默認進程中。就像應用的包名一樣。<application>元素的process屬性能對所有組件設置不同的默認值。然而,組件能通過它自身的process屬性重寫默認值,從而允許你擴展你的應用跨越多個進程。
如果分配到這個屬性的名稱以冒號(:)開始,那麼當需要它的時候,一個新的、對這個應用私有的進程就被創建,同時這個服務就在哪個進程運行。如果進程的名字以小寫字母開始,那麼這個服務將運行在全局進程中。這就允許在不同應用中的組件共享這個進程,降低資源的消耗。
前言:1.文中的”$”不納入命令行中,只做標記用2.文中會介紹常用的命令行操作方式和xcode界面化操作方式介紹git3.以下均個人理解整理,如果
本文在上一篇初步介紹TableLayout常用屬性的基礎上,將進一步介紹如何UI設計器設計TableLayout + TableRow。由於實際應用中,經常需要在代碼裡往
剛剛接手一個備份系統浏覽器書簽的模塊,現在把代碼貼出來,另外有幾點疑問請路過的大神指教 1、根據官方api應該是有以下幾個字段是可以獲取的 但是除了
方法1:使用內部APIs該方法和其他所有內部沒有向外正式公布的APIs一樣存在它自己的風險。原理是通過獲得WindowManager的一個實例來訪問injectKeyEv
compile 'com.android.suppo