當前位置:編程學習大全網 - 遊戲軟體 - Service的啟動方式

Service的啟動方式

對service有點了解的朋友肯定都會知道服務有兩種啟動方式,即startService和bindService。那麽這兩種服務有什麽區別呢?

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)方法停止該服務

  • 上一篇:洛克王國帕爾薩斯克制什麽寵物。最好配招是什麽。練級的最佳秒殺寵物是誰。
  • 下一篇:原來是美男13集演唱會黃泰京唱的歌曲名 最好具體到電視劇裏面的歌詞 謝謝
  • copyright 2024編程學習大全網