我在我的應用程序中有多個活動,每個活動都調用bindservice
和unbindservice
來獲取數據。在第一個活動bindservice
和unbindservice
工作正常。在第二項活動(其中重複使用相同的服務)綁定服務的方法工作正常,但unbindservice
方法給出例外:IllegalArgumentException:服務未註冊:
IllegalArgumentException: Service not registered:
請幫助。
我在我的應用程序中有多個活動,每個活動都調用bindservice
和unbindservice
來獲取數據。在第一個活動bindservice
和unbindservice
工作正常。在第二項活動(其中重複使用相同的服務)綁定服務的方法工作正常,但unbindservice
方法給出例外:IllegalArgumentException:服務未註冊:
IllegalArgumentException: Service not registered:
請幫助。
多個客戶端可以一次連接到該服務。但是,只有當第一個客戶端綁定時,系統纔會調用您的服務的onBind()方法來檢索IBinder。系統然後將相同的IBinder傳遞給綁定的任何其他客戶端,而無需再次調用onBind()。 http://developer.android.com/guide/components/bound-services.html 多個組件可以立即綁定到該服務,但是當它們全部解除綁定時,服務將被銷燬。 因此,請檢查您是否在第一時間終止服務。 可能會將IBind傳遞給每個活動要好得多。因爲它只返回一個。
請確保您在活動中僅爲每個服務取消綁定。偶然發生了2次解綁,並在第二次崩潰時發生了這個錯誤。刪除重複的解除綁定解決了我的問題。 – eliteslayer 2013-07-18 02:56:10
我有一箇舊的API的這個問題。 (安卓2.2) 我得到這個錯誤,當我調用此方法:(從計費教程)
@Override
public void onDestroy() {
super.onDestroy();
try {
if (mHelper != null) mHelper.dispose();
mHelper = null;
}catch (IllegalArgumentException e){
Log.d("TMA Billing Android 2.2","Error: "+e.getMessage());
mHelper = null;
}
}
正如你所看到的,我嘗試捕捉包圍它,現在它正在與沒有問題在Android 2.2 。
您使用什麼上下文綁定到服務? – NikkyD 2012-11-21 10:04:09
請發佈logcat。 – 2013-07-07 15:45:57
更好的討論:https://stackoverflow.com/questions/12277673/android-services-error-service-not-registered – dskrvk 2017-01-25 21:37:24