Android 四大组件 -- service
Android開發(fā)的四大組件分別是:
- 活動(activity),用于表現(xiàn)功能;
- 服務(service),后臺運行服務,不提供界面呈現(xiàn);
- 廣播接受者(BroadcastReceive),勇于接收廣播;
- 內(nèi)容提供者(Content Provider),支持多個應用中存儲和讀取數(shù)據(jù),相當于數(shù)據(jù)庫
一、本文講的是服務(service)
Android中的四大組件之一,是一個一種可以在后臺執(zhí)行長時間運行操作而沒有用戶界面的應用組件。服務可由其他應用組件啟動,而且即使用戶切換到其他應用,服務仍將在后臺繼續(xù)運行。它通常用作在后臺處理耗時的邏輯,與Activity一樣,它存在自己的生命周期,也需要在AndroidManifest.xml配置相關(guān)信息。
Service 有兩種啟動方式
1. startService (啟動狀態(tài))
特點 :一旦服務開啟跟調(diào)用者(開啟者)就沒有任何關(guān)系了。開啟者退出了,開啟者掛了,服務還在后臺長期的運行,只有通過調(diào)用停止服務的方法才能停止服務,或者是整個程序被kill掉,那么服務也會隨之kill。開啟者不能調(diào)用服務里面的方法
2. bindService(綁定狀態(tài))
特點:bind的方式開啟服務,綁定服務,調(diào)用者掛了,服務也會跟著掛掉。綁定者可以調(diào)用服務里面的方法。(說白了就和小程序一樣,打開的時候使用,用完了就關(guān)閉拍屁股走人,一次性滴)注意:綁定服務不會調(diào)用onstart()或者onstartcommand()方法
生命周期方法說明:
- onCreate() :
首次創(chuàng)建服務時,系統(tǒng)將調(diào)用此方法。如果服務已在運行,則不會調(diào)用此方法,該方法只調(diào)用一次。 - onStartCommand() :
當另一個組件通過調(diào)用startService()請求啟動服務時,系統(tǒng)將調(diào)用此方法。 - onDestroy() :
當服務不再使用且將被銷毀時,系統(tǒng)將調(diào)用此方法。 - onBind() :
當另一個組件通過調(diào)用bindService()與服務綁定時,系統(tǒng)將調(diào)用此方法。 - onUnbind() :
當另一個組件通過調(diào)用unbindService()與服務解綁時,系統(tǒng)將調(diào)用此方法。 - onRebind() :
當舊的組件與服務解綁后,另一個新的組件與服務綁定,onUnbind()返回true時,系統(tǒng)將調(diào)用此方法。
3、生命周期調(diào)用
1. 啟動Service服務
- 單次:startService() —> onCreate() —> onStartCommand()
- 多次:startService() —> onCreate() —> onStartCommand() —> onStartCommand()
2. 停止Service服務
- stopService() —> onDestroy()
3. 綁定Service服務
- bindService() —> onCreate() —> onBind()
4. 解綁Service服務
- unbindService() —> onUnbind() —> onDestroy()
5. 啟動綁定Service服務
- startService() —> onCreate() —> onStartCommand() —> bindService() —> onBind()
6. 解綁停止Service服務
- unbindService() —> onUnbind() —> stopService() —> onDestroy()
7. 解綁綁定Service服務
- unbindService() —> onUnbind(ture) —> bindService() —> onRebind()
這里有篇參考文章
總結(jié)
以上是生活随笔為你收集整理的Android 四大组件 -- service的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pug模板引擎——jade
- 下一篇: 《Android源码设计模式》--装饰模