2012-05-18 74 views
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遠程活動。這可能是一個問題嗎? 我根本不知道如何調試這種奇怪的行爲...

在此先感謝。

+0

沒關係。 android.os.Debug.waitForDebugger();是問題。我真的不認爲這會打破我的計劃。 :/評論它,現在一切都像一個魅力。 – domenukk

+0

在答案中提及您的詳細解答並接受您自己的答案,它可以在將來幫助他人。 – SpeedBirdNine

+0

我不能,因爲我是新來的Stackoverflow。 – domenukk

回答

0

解決方案非常簡單。只是取消註釋

android.os.Debug.waitForDebugger(); 

,因爲它會默默地等待,如果沒有我的調試應用程序啓動調試器附加連 - 這是永遠不會發生。