Activity
Service
Service可以在和多場合的應用中使用,比如播放多媒體的時候用戶啟動了其他Activity這個時候程序要在后臺繼續(xù)播放祝蝠,比如檢測SD卡上文件的變化披蕉,再或者在后臺記錄你地理信息位置的改變等等盾饮,總是藏在后頭的。
Service是在一段不定的時間運行在后臺炕贵,不和用戶交互應用組件护糖。每個Service必須在manifest中 通過<service>來聲明晶疼」酰可以通過contect.startservice和contect.bindserverice來啟動吧恃。
Service和其他的應用組件一樣,運行在進程的主線程中麻诀。這就是說如果service需要很多耗時或者阻塞的操作痕寓,需要在其子線程中實現(xiàn)傲醉。
Broadcast Receiver
BroadcastReceiver 用于異步接收廣播Intent。主要有兩大類呻率,用于接收廣播的:
正常廣播 Normal broadcasts(用 Context.sendBroadcast()發(fā)送)是完全異步的硬毕。它們都運行在一個未定義的順序,通常是在同一時間筷凤。這樣會更有效昭殉,但意味著receiver不能包含所要使用的結(jié)果或中止的API苞七。
有序廣播 Ordered broadcasts(用 Context.sendOrderedBroadcast()發(fā)送)每次被發(fā)送到一個receiver藐守。所謂有序,就是每個receiver執(zhí)行后可以傳播到下一個receiver蹂风,也可以完全中止傳播--不傳播給其他receiver卢厂。 而receiver運行的順序可以通過matched intent-filter 里面的android:priority來控制,當priority優(yōu)先級相同的時候惠啄,Receiver以任意的順序運行慎恒。
Cotent Provider
ContentProvider(內(nèi)容提供者)是Android中的四大組件之一。主要用于對外共享數(shù)據(jù)撵渡,也就是通過ContentProvider把應用中的數(shù)據(jù)共享給其他應用訪問融柬,其他應用可以通過ContentProvider對指定應用中的數(shù)據(jù)進行操作。ContentProvider分為系統(tǒng)的和自定義的趋距,系統(tǒng)的也就是例如聯(lián)系人粒氧,圖片等數(shù)據(jù)。