2010-08-01 104 views
2

我有一個服務在第一次調用時啓動並正確綁定,但當被其他活動調用時,對同一服務的連續綁定失敗。Android服務啓動/綁定正確,但只有第一次

代碼:

activity.startService(new Intent().setClass(activity, ServerListenerService.class));   

xmppServiceConnection = new ServiceConnection() { 
     public void onServiceDisconnected(ComponentName name) { 
      ServerActivityConnection.this.xmppService = null; 
     } 

     public void onServiceConnected(ComponentName name, IBinder binder) { 
      //set everything up 
     } 
    }; 

activity.bindService(new Intent().setClass(activity, ServerListenerService.class), xmppServiceConnection, Activity.BIND_AUTO_CREATE); 

第二次左右,調用activity.bindService之後,serviceconnection的onServiceConnected方法不會被調用。我使用一個連接類來完成綁定,所以這兩個活動的方法都是一樣的。該服務也正確添加清單文件。

任何想法?

非常感謝

回答

3

確保您解除綁定你嘗試用相同的ServiceConnection再結合之前。

此外,您通常不需要startService()bindService()。你永遠不需要startService()bindService(..., BIND_AUTO_CREATE)。除非你有一個非常具體的原因,你需要使用startService()以及bindService(),否則我只會使用一個。