sendReliableRealTimeMessage没有给出任何回调

时间:2013-09-25 08:09:28

标签: google-play-games

这里我使用以下代码发送消息。我添加了回调监听器以了解消息状态,但它没有打印任何日志消息。

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());

1 个答案:

答案 0 :(得分:3)

不要使用这样的匿名侦听器。 API使用对侦听器的弱引用,因此经常发生这些侦听器在调用之前将被垃圾收集。请使用非匿名侦听器再次尝试,即您持有引用的侦听器。一种简单的方法是将Activity作为监听器(即将“实现RealTimeReliableMessageSentListener”添加到Activity类中)。

另一种选择是在侦听中将侦听器显式引用为成员变量。