startService的特點:
啟動方式:
在其它組件中通過startService()方法啟動。
停止方式:
在其它組件中通過stopService()方法停止,或者在service中調用stopSelf()方法停止.
生命周期:
onCreate()--->onStartCommand()(onStart()方法已過時) ---> onDestory()
壹旦啟動,service即可在後臺無限期運行,即使啟動service的組件已經被銷毀也不受影響,直到其被停止.
說明:如果服務已經開啟,不會重復的執行onCreate(), 而是會調用onStart()和onStartCommand()。
服務停止的時候調用 onDestory()。服務只會被停止壹次。
與其它組件的通信方式:
沒有提供默認的通信方式,啟動service後該service就處於獨立運行狀態
使用步驟:
(1)定義壹個繼承service的類
(2)在配置文件Manifest.xml中配置該service
(3)使用context調用startService(Intent)方法啟動該service
(4)不再使用時,調用stopService(Intent)方法停止該服務
bindService的特點:
啟動方式:
在其它組件中通過bindService()方法啟動。
停止方式:
所有綁定service的組件都被銷毀,或者所有綁定service的組件都調用了unbindService方法後會停止
生命周期:
onCreate() --->onBind()--->onunbind()--->onDestory()
壹旦啟動,只有當所有綁定service的組件都被銷毀,或者所有綁定service的組件都調用了unbindService方法後才會停止
說明:bind的方式開啟服務,綁定服務,調用者掛了,服務也會跟著掛掉。綁定者可以調用服務裏面的方法
與其它組件的通信方式:
可以通過 ServiceConnection進行通信,組件可以與service進行交互、發送請求、獲取結果,甚至是利用IPC跨進程執行這些操作
使用步驟:
(1)定義壹個繼承service的類
(2)在配置文件Manifest.xml中配置該service
(3)使用context調用bindService(Intent, ServiceConnection, int)方法啟動該service
(4)不再使用時,調用unbindService(ServiceConnection)方法停止該服務