Android中Service的啓動方式及Activity與Service的通訊方式

Service啓動的兩種方式

1.經過startService啓動

使用Service的步驟:html

  1. 定義一個類繼承Service
  2. 在Manifest.xml文件中配置該Service
  3. 使用Context的startService(Intent)方法啓動該Service
  4. 再也不使用時,調用stopService(Intent)方法中止該服務

生命週期:xml

onCreate()--->onStartCommand() ---> onDestory()
當Service已經啓動時,再也不調用onCreate方法,而會調用onStart和onStartCommand方法
生命週期與Activity不一樣,Activity結束後Service並不跟隨結束htm

2.經過bindService啓動

使用Service的步驟:blog

  1. 定義一個類繼承Service
  2. 在Manifest.xml文件中配置該Service
  3. 使用Context的bindService(Intent, ServiceConnection, int)方法啓動該Service
  4. 再也不使用時,調用unbindService(ServiceConnection)方法中止該服務

生命週期:繼承

onCreate() --->onBind()--->onunbind()--->onDestory()
生命週期與Activity相同,Activity結束後Service跟隨結束生命週期

Activity與Service的通訊方式

  1. 不管是start仍是bind,均可以在開始時經過intent攜帶必定量數據
  2. 經過Broadcast,Activity發送廣播,Service接收;或者Service發送廣播,Activity接收
  3. 經過bind方式啓動時,能夠經過實現ServiceConnection來完成Activity和Service的交互

參考資料

Android 服務兩種啓動方式的區別get

Android Activity與Service的通訊方式it

相關文章
相關標籤/搜索