我编写了一个连接到远程服务的库,该服务调用
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 文件的实现。
现在我的问题:只要我调试服务(在返回语句上设置断点)它就可以工作,但是当我调试活动时它就不起作用。ServiceConnection 永远不会返回。
顺便说一句:我打电话
startActivityForResult(...);
在 Activity.onCreate 中调用远程 Activity。这可能是这里的问题吗?我根本不知道如何调试这种奇怪的行为......
提前致谢。