2012-02-09 67 views
5

我們有一個服務,負責照顧我們的一項活動中的幾件事。對於Android來說,我們相當陌生,不知道綁定到該服務的最佳時機是什麼。我們只需要通過該活動可能進行的一半交互的服務。因此,我們不得不接受的兩種可能性之一:Android服務:按需綁定與綁定在#onCreate()

  • 綁定,當我們真正需要的服務,這將在OnCreate開銷實現明智
  • 綁定相當數量添加到服務()方法,無需檢查服務是否正在運行,根據需求進行綁定,可能緩存請求等。

什麼是「android方式」?運行中的服務是否有很多開銷,或者應該在真正需要時才啓動?服務本身非常輕便。

+1

我個人會在onCreate中綁定它。綁定/解除綁定似乎是不明智的,如果你看看服務的實現,你會發現它並不是如何完成的。儘管我不是關於服務細節的專家,但我的體驗至少是這樣。環顧四周,看看其他人和谷歌實施。 – DecodeGnome 2012-02-17 09:17:56

回答

1

我個人更喜歡在onCreate()中調用bindService(),並在完成使用後調用onDestroy()中的unbindService()。原因是bindService()實際上是一個異步調用。這在API中沒有很好的記錄。當您調用bindService()時,您在ServiceConnection.onServiceConnected()回調方法中獲取的binder對象的引用不會立即得到實例化,而在調用bindService()之後和綁定器對象被實例化並準備使用之前, 。所以最適合調用它的地方是onCreate(),因爲我們通常不會預處理很多繁重的操作,並且需要在此階段立即使用binder對象。