2014-12-13 108 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陣列存儲所有連接的客戶端。 – 2014-12-13 16:21:25

+0

它在哪裏循環? – pskink 2014-12-13 18:20:01

+0

我的不好。我應該在for循環中創建Message的新實例。 – 2015-01-07 07:00:39

回答

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; 
     } 
} 
相關問題