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 文件的实现。

现在我的问题:只要我调试服务(在返回语句上设置断点)它就可以工作,但是当我调试活动时它就不起作用。ServiceConnection 永远不会返回。

顺便说一句:我打电话

startActivityForResult(...);

在 Activity.onCreate 中调用远程 Activity。这可能是这里的问题吗?我根本不知道如何调试这种奇怪的行为......

提前致谢。

4

1 回答 1

0

解决方案非常简单。只是未注释

android.os.Debug.waitForDebugger(); 

as it will silently wait for the debugger to attach even if not started by my debug application - which is never going to happen.

于 2012-06-04T08:04:39.167 回答