《Android攻略》客戶端和Service交互

1)客戶端實現android.content.ServiceConnection的一個子類,隨着Service的啓動和停止,爲了獲得Service的信息重載其中的抽象方法void onServiceConnected(ComponentName className,IBinder service)和

void onServiceDisconnected(ComponentName name)。當bindService(Intent,ServiceConnection,int)返回ture時,如果建立了到Service的連接,就會調用前一個方法;傳遞給該方法的IBinder參數與onBind(Intent)的返回值相同。如果Service連接丟失 ,就會調用後一個方法。

 連接丟失通常發生在提供Service的進程崩潰或被臨時終止的情況下。只要ServiceConnection實例本身沒有被刪除,與Service的綁定就始終處於活躍狀態,當Service再次運行時會調用onServiceConnected(ComponentName,IBinder)。

2)客戶端將ServiceConnection子類對象傳遞給bindService(Intent,ServiceConnection,int)方法。

 客戶端調用void unbindService(ServiceConnection conn)方法與Service斷開連接。斷開連接後,Service重啓時,該組件也不會收到調用。如果沒有其他綁定,該Service隨時可以停止。

在Service可以停止Service之前,會調用服務的boolean onUnbind(Intent intent)生命週期回調方法,其中的Intent對象會傳遞給unbindService(ServiceConnection)。假設onUnbind沒有返回ture,則銷燬該服務。否則每次綁定到該Service時都調用void onRebind(Intent intent)生命週期回調方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章