AJPFX簡述Context.startService()和Context.bindService

Context.startService()和Context.bindServiceide

  服務不能本身運行,須要經過調用Context.startService()或Context.bindService()方法啓動服務。這兩個方法均可it

  以啓動Service,可是它們的使用場合有所不一樣。class

  1.使用startService()方法啓用服務,調用者與服務之間沒有關連,即便調用者退出了,服務仍然運行。方法

  使用bindService()方法啓用服務,調用者與服務綁定在了一塊兒,調用者一旦退出,服務也就終止。top

  2.採用Context.startService()方法啓動服務,在服務未被建立時,系統會先調用服務的onCreate()方法,di

  接着調用onStart()方法。若是調用startService()方法前服務已經被建立,屢次調用startService()方法並view

  不會致使屢次建立服務,但會致使屢次調用onStart()方法。vi

  採用startService()方法啓動的服務,只能調用Context.stopService()方法結束服務,服務結束時會調用bind

  onDestroy()方法。co

  3.採用Context.bindService()方法啓動服務,在服務未被建立時,系統會先調用服務的onCreate()方法,

  接着調用onBind()方法。這個時候調用者和服務綁定在一塊兒,調用者退出了,系統就會先調用服務的onUnbind()方法,

  。接着調用onDestroy()方法。若是調用bindService()方法前服務已經被綁定,屢次調用bindService()方法並不會

  致使屢次建立服務及綁定(也就是說onCreate()和onBind()方法並不會被屢次調用)。若是調用者但願與正在綁定的服務

  解除綁定,能夠調用unbindService()方法,調用該方法也會致使系統調用服務的onUnbind()-->onDestroy()方法。

相關文章
相關標籤/搜索