这里我使用以下代码发送消息。我添加了回调监听器以了解消息状态,但它没有打印任何日志消息。
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 :(得分:3)
不要使用这样的匿名侦听器。 API使用对侦听器的弱引用,因此经常发生这些侦听器在调用之前将被垃圾收集。请使用非匿名侦听器再次尝试,即您持有引用的侦听器。一种简单的方法是将Activity作为监听器(即将“实现RealTimeReliableMessageSentListener”添加到Activity类中)。
另一种选择是在侦听中将侦听器显式引用为成员变量。