2012-10-02 26 views
1

我有一個遠程服務,我想使用該服務來檢查onPrepareOptionsMenu中的一些條件。但是當我從其他活動回來時,有時候我會得到「粘結劑空」異常。我在onServiceDisconnected中將活頁夾設置爲null。Android - OnServiceDisconnected是否在Activity onStop之後被調用?

我的問題:

  1. 是否onServiceDisconnected活動的onStop之後叫什麼名字?
  2. onStart而不是onCreate更好嗎?
  3. 請您簡單介紹一下本地服務和遠程服務的區別嗎?

回答

0

1)編號onServiceDisconnected()只有當服務意外終止時纔會調用,例如託管服務的進程崩潰時。當您從服務中解除綁定時,它不會被調用。來自documentation

當與服務的連接丟失時調用。這通常是 發生在託管服務的進程已崩潰或已被終止時。這不會刪除ServiceConnection本身 - 綁定到該服務的此 將保持活動狀態,並且當服務下一個 正在運行時,您將收到對onServiceConnected(ComponentName,IBinder)的呼叫 。

2)一般來說,如果你不需要,而你的活動停止,那麼,在結合和onStart()在解除綁定到onStop()連接到服務是正確的道路要走。這裏的想法是,當你的活動在後臺時,你不會浪費資源。但是,在某些情況下documentation for bound services表示在onCreate()中綁定並在onDestroy()中解除綁定也可以。

3)本地服務意味着服務與消費者處於同一個進程中。遠程服務是處於不同進程中的服務。

相關問題