2014-12-13 4 views
0

Я делаю свой сервис для android для общения со всей моей деятельностью. Все работают хорошо, но сегодня я хочу попытаться отправить сообщение от службы всем подключенным клиентом. Код в IncomingHandlerAndroid - не удается отправить сообщение с моей службы всем клиентам

@Override 
    public void handleMessage(Message msg) { 
     switch (msg.what) { 
      case MSG_1: 
       Log.i("RpcChannelService", "MSG_1"); 
       //send msg to all clients 
       Message msgGpsEnable= Message.obtain(null, 
         RpcChannelService.MSG_1); 
       for (Messenger client : mClients) { 
        try { 
         client.send(msgGpsEnable); 
        } catch (RemoteException e) { 
         Log.i("RpcChannelService", "handleMessage:MSG_GPS_ENABLE exception"); 
        } 
       } 
       break; 
      } 
    } 

Когда я бегу/отладить этот код, после того, как передача думал этот код, программа сделать навсегда петлю. Может ли кто-нибудь сказать мне, почему? Спасибо большое.

+0

mClients - это массив Messenger, который хранит все подключенные клиенты. –

+0

где это петля? – pskink

+0

Мой плохой. Я должен создать новый экземпляр сообщения внутри цикла. –

ответ

0

Мой плохой. Я должен создать новый экземпляр Message внутри цикла.

@Override 
public void handleMessage(Message msg) { 
    switch (msg.what) { 
     case MSG_1: 
      Log.i("RpcChannelService", "MSG_1"); 
      //send msg to all clients 

      for (Messenger client : mClients) { 
       try { 
        Message msgGpsEnable= Message.obtain(null, 
        RpcChannelService.MSG_1); 
        client.send(msgGpsEnable); 
       } catch (RemoteException e) { 
        Log.i("RpcChannelService", "handleMessage:MSG_GPS_ENABLE exception"); 
       } 
      } 
      break; 
     } 
} 
Смежные вопросы