我在服務MessengerService上調用bindService。它工作正常。之後,我打電話給startService。如果在調用服務類上的bindService後調用startService,會發生什麼情況?
的代碼是作爲此鏈接的遠程通訊服務實施例部分 http://developer.android.com/reference/android/app/Service.html 完全相同除我在活動
添加startService這是客戶端代碼: 意圖intnt =新意圖(上下文,MessengerService.class); intnt.putExtra(「msg」,「從活動到服務到處理程序11的字符串」);
bindService(intnt, mConnection, Context.BIND_AUTO_CREATE);
intnt.putExtra("msg", "String from activity to service to handler 22");
startService(intnt);
在服務代碼: 在onStartCommand,我接受這是在startService傳遞意圖不管消息,我發送回客戶端的處理程序。
我在mClients.get(0).send(msg1)行中獲取了超出綁定異常的索引。 mClients是連接到此服務並在綁定過程中存儲的客戶端數組。
的代碼是此鏈接遠程通訊服務例如部分 http://developer.android.com/reference/android/app/Service.html 完全相同,除了我在服務
加入onStartCommand@Override
public int onStartCommand(Intent intent, int flags, int startId){
String str = intent.getStringExtra("msg");
Message msg1 = Message.obtain(null, MSG_STR_VALUE);
Bundle data = new Bundle();
data.putString("message", str);
msg1.setData(data);
System.out.println(str);
try {
s1.acquire();
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
mClients.get(0).send(msg1);
} catch (RemoteException e) {
e.printStackTrace();
}
return START_STICKY;
}
你有沒有檢查是否有任何對象被添加到mClients? – bogdan