關於四大基本組件的一個總結:

1>    4大組件的註冊異步

4大基本組件都須要註冊才能使用,每一個Activity、service、Content Provider內容提供者都須要在AndroidManifest文件中進行配置AndroidManifest文件中未進行聲明的activity、 服務以及內容提供者將不爲系統所見,從而也就不可用,而BroadcastReceive廣播接收者的註冊分靜態註冊(在AndroidManifest 文件中進行配置)和經過代碼動態建立並以調用Context.registerReceiver()的方式註冊至系統。須要注意的是在 AndroidManifest文件中進行配置的廣播接收者會隨系統的啓動而一直處於活躍狀態,只要接收到感興趣的廣播就會觸發(即便程序未運行)ide

AndroidManifest文件中進行註冊格式以下:對象

<activity>元素的name 屬性指定了實現了這個activity 的Activity 的子類。icon 和label 屬性指向了包含展現給用戶的此activity 的圖標和標籤的資源文件。資源

<service> 元素用於聲明服務get

<receiver> 元素用於聲明廣播接收器it

<provider> 元素用於聲明內容提供者ast

2>   4大組件的激活配置

內容提供者的激活:當接收到ContentResolver 發出的請求後,內容提供者被激活。而其它三種組件──activity、服務和廣播接收器被一種叫作intent 的異步消息所激活
service

Activity的激活經過傳遞一個Intent 對象至Context.startActivity()或Activity.startActivityForResult()以載入(或指定新工做給) 一個activity。相應的activity 能夠經過調用getIntent() 方法來查看激活它的intent。若是它指望它所啓動的那個activity 返回一個結果,它會以調用startActivityForResult()來取代startActivity()。好比說,若是它啓動了另一個 Activity 以使用戶挑選一張照片,它也許想知道哪張照片被選中了。結果將會被封裝在一個Intent 對象中,並傳遞給發出調用的activity 的onActivityResult() 方法。請求

服務的激活能夠經過傳遞一個Intent 對象至Context.startService()或Context.bindService()前者Android 調用服務的onStart()方法並將Intent 對象傳遞給它,後者Android 調用服務的onBind()方法將這個Intent 對象傳遞給它

發送廣播能夠經過傳遞一個Intent 對象至給Context.sendBroadcast() 、

Context.sendOrderedBroadcast()或Context.sendStickyBroadcast()Android 會調用全部對此廣播有興趣的廣播接收器的onReceive()方法,將intent 傳遞給它們

3>   四大組件的關閉

內容提供者僅在響應ContentResolver 提出請求的時候激活。而一個廣播接收器僅在響應廣播信息的時候激活。因此,沒有必要去顯式的關閉這些組件。

Activity關閉:能夠經過調用它的finish()方法來關閉一個activity

服務關閉:對於經過startService()方法啓動的服務要調用Context.stopService()方法關閉服務,使用bindService()方法啓動的服務要調用Contex.unbindService ()方法關閉服務

相關文章
相關標籤/搜索