1

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

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

1 回答 1

3

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

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

于 2013-09-27T20:34:32.643 回答