2013-09-25 56 views
1

這裏我使用下面的代碼發送消息。我添加了回調監聽器來了解消息狀態,但不打印任何日誌消息。sendReliableRealTimeMessage沒有給出任何回調

gamesClient.sendReliableRealTimeMessage(new RealTimeReliableMessageSentListener() { 
      @Override 
      public void onRealTimeMessageSent(int statusCode, int tokenId, String recipientParticipantId) { 
       // TODO Auto-generated method stub 
       switch (statusCode) { 
       case GamesClient.STATUS_OK: 
        Log.e("status", "STATUS_OK"); 
        break; 
       case GamesClient.STATUS_REAL_TIME_MESSAGE_SEND_FAILED: 
        Log.e("status", "STATUS_REAL_TIME_MESSAGE_SEND_FAILED"); 
        break; 
       case GamesClient.STATUS_REAL_TIME_ROOM_NOT_JOINED: 
        Log.e("status", "STATUS_REAL_TIME_ROOM_NOT_JOINED"); 
        break; 
       } 
      } 
     }, msgBuf, roomId, p.getParticipantId()); 
+0

儘管我已經分享了丟棄的消息,但它不是sendReliableRealTimeMessage()的正常情況。 2件事情..你是否在你的其他設備上收到任何消息? (無論是可靠的還是不可靠的發送)你是否能夠發佈你如何設置你的活動(聲明等) – user2346305

+0

我沒有收到其他設備的消息。 – Prasanna

+0

嘿,我得到了解決方案。我現在更新了我的庫,它的工作正常 – Prasanna

回答

3

不要使用匿名聽衆這樣。 API使用弱引用來監聽器,所以經常發生這些監聽器在被調用之前會被垃圾收集。請使用非匿名偵聽器重試,即您持有引用的偵聽器。一種簡單的方法是讓Activity成爲偵聽器(即將「RealTimeReliableMessageSentListener」添加到Activity類中)。

另一種方法是在活動中將監聽器作爲成員變量進行顯式引用。

相關問題