Activity是一種展現型組件,具備兩種啓動方式:ide
顯示啓動,經過Intent實現 隱式啓動,也須要Intent,但還須要在AndroidManifest.xml中添加IntentFilter。 在實現Activity時,須要繼承Activity抽象類,並重寫onCreate()方法,於是Activity具備啓動和中止概念。學習
Service是一種計算型組件,其生命週期是嵌套在主線程的。 Service有兩種啓動模式線程
BroadcastReceiver是一種消息型組件。因爲BroadcastReceiver能夠在不一樣的組件甚至不一樣的應用之間傳遞消息,因此其能夠脫離Activity實現,除了要在AndroidManifest.xml中註冊廣播類名外,還須要添加IntentFilter,這樣就可讓Receiver選擇性的接受廣播。當註冊完成後,及時沒有Activity啓動,也能夠接受廣播。 在實現BroadcastReceiver時,須要繼承BroadcastReceiver抽象類,可是不須要重寫onCreate()方法,只要重寫onReceive()方法便可。所以BroadcastReceiver沒有啓動和中止的概念,更像是一個系統級的監聽器。xml
ContentProvider是一種數據共享性組件,能夠在應用之間共享數據,因此與BroadcastReceiver同樣,其能夠脫離Activity實現。在實現ContentProvider時,須要繼承ContentProvider抽象類,而後在AndroidManifest.xml中註冊類名和ContentProvider的域名。 該類須要重寫六個方法,即onCreate(),query(),insert(),update(),delete(),getType() 與前三個組件不一樣,ContentProvider沒有使用intent,而是使用URI來判斷可否爲ContentResolver提供數據共享。繼承
###總結: Activity和Service有生命週期,而BroadcastReceiver與ContentProvider採用監聽機制,沒有生命週期 四大組件都須要在AndroidManifest.xml中註冊 除了ContentProvider外,其餘組件都要用到intent 四大組件實現時都要繼承其抽象的父類 Service與Activity關係最爲密切,BroadcastReceiver和ContentProvider的實現基本不依賴與Activity。 今年金九銀十我花一個月的時間收錄整理了一套知識體系,若是有想法深刻的系統化的去學習的,能夠點擊傳送門,我會把我收錄整理的資料都送給你們,幫助你們更快的進階。生命週期