0

我在MainActivity中使用startService運行了自定義綁定服務,然後綁定到它。我在其他活動中也這樣做。但是,每當我退出該活動(並且該服務按照它的意圖繼續運行),或者甚至完全關閉該應用程序時,我會在這些方面發生錯誤。儘管在onDestroy或onPause中解除綁定,但「Activity <activityname>泄露了ServiceConnection」

09-19 01:58:11.660 20750-20750/***.rs E/ActivityThread: Activity ***.rs.OpenArticle has leaked ServiceConnection ***[email protected] that was originally bound here 
android.app.ServiceConnectionLeaked: Activity *** has leaked ServiceConnection ***[email protected] that was originally bound here 
at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1092) 
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:986) 
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1303) 
at android.app.ContextImpl.bindService(ContextImpl.java:1286) 
at 
... 

我解除綁定服務中的onDestroy這兩種情況下,我也嘗試過其他的功能,如onUserLeaveHint和的onPause但既不似乎工作。

這是我的OpenArticle文件的代碼,我嘗試解除綁定我的服務。有趣的是,失敗消息從不顯示在logcat中。

@Override 
protected void onUserLeaveHint() { 
    try { 
     unbindService(sConn); 
    } catch (RuntimeException e) { 
     Log.d("OpenArticle", "Service unbind not successful."); 
    } 
    super.onUserLeaveHint(); 


} 

實際上,這並沒有真正影響到應用程序的任何功能,但它仍然好像我做錯了什麼。

+0

在onPause()或onStop()方法的活動中執行unbindService調用 –

回答

0

您應該在@Override protected void onStop()中取消綁定您的服務,因爲可能不會調用onDestroy,那麼您將離開您的活動。

相關問題