1

を呼び出すリモート サービスに接続するライブラリを作成しました。

    return context.bindService(bindIntent,
            serviceConnectionSmartCard, Context.BIND_AUTO_CREATE);

context が 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 ファイルの実装です。

今私の問題:サービスをデバッグする限り機能します(returnステートメントにブレークポイントを設定します)が、代わりにアクティビティをデバッグすると機能しません。ServiceConnection は返されません。

ところで:私は電話します

startActivityForResult(...);

Activity.onCreate でリモート アクティビティを呼び出します。これはここで問題になる可能性がありますか?このような奇妙な動作をデバッグする方法がわかりません...

前もって感謝します。

4

1 に答える 1

0

解決策は非常に簡単でした。コメントを外しただけ

android.os.Debug.waitForDebugger(); 

デバッグアプリケーションによって開始されていなくても、デバッガーがアタッチされるのを黙って待機するため、これは決して起こりません。

于 2012-06-04T08:04:39.167 に答える