Service啟動的兩種方式
1.通過startService啟動
使用Service的步驟:
- 定義一個類繼承Service
- 在Manifest.xml檔案中配置該Service
- 使用Context的startService(Intent)方法啟動該Service
- 不再使用時,呼叫stopService(Intent)方法停止該服務
生命週期:
onCreate()--->onStartCommand() ---> onDestory()
當Service已經啟動時,不再呼叫onCreate方法,而會呼叫onStart和onStartCommand方法
生命週期與Activity不同,Activity結束後Service並不跟隨結束
2.通過bindService啟動
使用Service的步驟:
- 定義一個類繼承Service
- 在Manifest.xml檔案中配置該Service
- 使用Context的bindService(Intent, ServiceConnection, int)方法啟動該Service
- 不再使用時,呼叫unbindService(ServiceConnection)方法停止該服務
生命週期:
onCreate() --->onBind()--->onunbind()--->onDestory()
生命週期與Activity相同,Activity結束後Service跟隨結束
Activity與Service的通訊方式
- 不論是start還是bind,都可以在開始時通過intent攜帶一定量資料
- 通過Broadcast,Activity傳送廣播,Service接收;或者Service傳送廣播,Activity接收
- 通過bind方式啟動時,可以通過實現ServiceConnection來完成Activity和Service的互動