Android學習筆記系列一 —— 組件的類型

1.Activity    能夠單純的理解爲一個頁面就是一個Activity。他與用戶的交互息息相關,每一個Activity在程序中實際上是相互獨立的,這樣帶來的好處就是,一個Activity能夠被本身所在的程序調用,也能夠被其餘程序調用,來實現相同的功能,靈活度很高。html

2.Service    徹底與界面無關,只運行在後臺,適合作一些耗時、遠程鏈接這樣的事情。他是被Activity啓動並綁定綁定後可完成交互,可是又獨立運行在後臺的組件,當Activity中止活動,他仍舊能夠繼續運行。android

3.Content provider    能夠把他想象成Android程序的公共數據集。當咱們使用文件系統、SQLite、網站後臺來儲存數據時,Content provider甚至能夠容許其餘程序來修改你本程序的數據。好比手機QQ用Content provider來儲存聯繫人,它容許微信獲取到聯繫人列表。微信

4.Broadcast receiver    是一個用來響應系統範圍內的廣播的組件,他與系統通知欄的通知是徹底不一樣的概念。系統自己能夠發起一些Broadcast receiver,好比電量低、正在充電、來電來短信等,程序也能夠發起廣播。一個廣播能夠是通知給其餘程序,讓其去完成相應的任務,也能夠發起一個通知欄,告訴用戶如今出現了一個什麼樣的狀況。異步

Android系統設計的一個獨特方面是,任何程序均可以啓動其它程序的四大組件。 例如,若是你想讓用戶使用設備相機捕捉一個相片,有另一個程序作這件事,那麼你的程序將能夠調用它, 而不是你本身開發一個拍照的activity。你沒必要從相機程序中嵌入代碼或者連連接代碼也不須要。取而代之地,你能夠簡單地啓動相機程序中拍照的activity。 當拍照完成,相片就會返回給你的程序供你使用。從用戶的角度,就好像相機就是你程序的一部分。ide

當系統啓動一個組件,它其實就啓動了這個程序的進程(若是這個進程還未被啓動的話)並實例化這個組件所須要的類。 例如,若是你的程序啓動了相機程序裏的activity去拍照,這個activity其實是運行在相機程序的進程裏,而不是你本身的進程。 所以,不像其它系統裏的程序,Android程序並非單入口的(例如它沒有main方法)。網站

因爲系統把程序運行在一個個獨立的進程中,並使用文件權限來限制對其它程序的訪問,因此你的程序不能從其它程序中直接激活組件。 儘管如此,Android系統能夠作到!激活一個其它程序的組件,你必須向系統發送一個信息,這個信息須要指定你的intent 來啓動一個指定的組件。 而後系統就會爲你激活這個組件。三大組件——activitie, service, 和 broadcast receiver均可被 intent異步激活。ui

激活組件的方法:設計

1.啓動一個activity(或者讓讓它來作一些新的工做)——    startActivity(Intent)    startActivityForResult(Intent) component

2.啓動一個service(或者給一個正在運行的service發送新的指令)——    startService(intent)    bindService(intent)htm

3.初始化一個broadcast——    sendBroadcast()    sendOrderedBroadcast()    sendStickyBroadcast()

4.讓content provider執行一個查詢操做經過調用 ContentResolver的query() 方法

參考資料:http://www.android-doc.com/guide/components/fundamentals.html

相關文章
相關標籤/搜索