2010-08-01 5 views
2

J'ai un service qui démarre et se lie correctement lorsqu'il est appelé pour la première fois, mais les liaisons successives à ce même service échouent lorsqu'elles sont appelées par d'autres activités.Le service Android démarre/lie correctement, mais seulement la première fois

Le code:

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); 

La deuxième fois, après l'appel à activity.bindService, méthode onServiceConnected du serviceconnection ne fait jamais appelé. J'utilise une classe de connexion qui fait la liaison, donc la méthode est la même pour les deux activités. Le service est également correctement ajouté le fichier manifeste.

Des idées?

Merci beaucoup

Répondre

3

Assurez-vous déliez avant d'essayer à nouveau de liaison avec le même ServiceConnection. En outre, vous n'avez généralement pas besoin à la fois de startService() et de bindService(). Vous n'avez JAMAIS besoin des deux startService() et bindService(..., BIND_AUTO_CREATE). Sauf si vous avez une raison très précise, vous devez utiliser startService() ainsi que bindService(), je n'en utiliserais qu'un.