1
我已經寫連接到調用安卓:綁定到遠程服務的調試
return context.bindService(bindIntent,
serviceConnectionSmartCard, Context.BIND_AUTO_CREATE);
與上下文中的ApplicationContext,並且,serviceConnectionSmartCard是我的自定義ServiceConnection的遠程服務的圖書館服務時纔會成功
public void onServiceConnected(ComponentName className, IBinder service) {
synchronized (this) {
if (waitForConnection) {
waitForConnection = false;
} else {
return;
}
}
if(service == null) {
Log.w(TAG, "Binding to Service failed.");
smartCardReaderService.onConnected(null);
} else {
if (D) Log.d(TAG, "Attached to Server.");
IConnectionService connectionService = IConnectionService.Stub.asInterface(service);
smartCardReaderService.onConnected(connectionService);
}
}
而在服務方面,我在onBind()中有以下內容:
public IBinder onBind(Intent intent) {
if (D) Log.d(TAG, "onBind");
android.os.Debug.waitForDebugger();
return iConnectionService.asBinder();
}
與iConnectionService是我的AIDL文件的實現。
現在我的問題是:只要我調試服務(在返回語句上設置斷點) ,但它在我調試Activity時不起作用。 ServiceConnection永遠不會返回。
BTW:我叫
startActivityForResult(...);
調用Activity.onCreate遠程活動。這可能是一個問題嗎? 我根本不知道如何調試這種奇怪的行爲...
在此先感謝。
沒關係。 android.os.Debug.waitForDebugger();是問題。我真的不認爲這會打破我的計劃。 :/評論它,現在一切都像一個魅力。 – domenukk
在答案中提及您的詳細解答並接受您自己的答案,它可以在將來幫助他人。 – SpeedBirdNine
我不能,因爲我是新來的Stackoverflow。 – domenukk