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