2010-08-01 101 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(),否则我只会使用一个。