2010-08-01 3 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, onServiceConnected метод в serviceconnection в никогда не вызывается. Я использую класс соединения, который выполняет привязку, поэтому метод одинаковый для обоих видов деятельности. Служба также правильно добавила файл манифеста.

Любые идеи?

Большое спасибо

ответ

3

Убедитесь, что вы отвязать, прежде чем повторить попытку связывания с тем же ServiceConnection.

Кроме того, вам, как правило, не нужны как startService(), так и bindService(). Вам НИКОГДА не нужны оба startService() и bindService(..., BIND_AUTO_CREATE). Если у вас нет особых причин, вам нужно использовать startService(), а также bindService(), я бы использовал только один.

Смежные вопросы