【问题标题】:Android XMPP Smack receive message when application is closeAndroid XMPP Smack 在应用程序关闭时收到消息
【发布时间】:2014-12-25 22:19:36
【问题描述】:

我知道如何使用 XMPP smack 库接收消息,但是即使在应用程序关闭后也可以接收消息。就像我们在应用程序关闭后收到的消息一样。

目前我正在使用下面的代码来接收消息,当应用程序关闭时我应该改变什么来接收消息。

 PacketFilter filter = new MessageTypeFilter(Message.Type.chat);

            // Listener for incoming message from any user

            connection.addPacketListener(new PacketListener() {
                public void processPacket(Packet packet) {
                    final Message message = (Message) packet;
                    if (message.getBody() != null) {
                        fromName = StringUtils.parseBareAddress(message
                                .getFrom());
                        Log.i("XMPPClient", "Got text [" + message.getBody()
                                + "] from [" + fromName + "]");     


                                }
                            }
                        });

                    }
                }
            }, filter);

【问题讨论】:

    标签: java android xmpp smack asmack


    【解决方案1】:
    1. 您需要保持与服务器的持久 tcp 连接,这将在后台接收所有消息。 Android Service 会帮助你。编写后台服务有点棘手,因为让你的服务阻止 cpu 休眠和耗尽用户电池太容易了。
    2. 您可以使用现有精心设计的Google Cloud Messaging 服务。在这种情况下,它不会花费您额外的 CPU/电池时间,但您需要在服务器端进行修改:当收件人未连接时 - XMPP 服务器应将消息转发到 GCM 服务器。

    【讨论】:

      猜你喜欢
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 2016-08-06
      • 2011-05-31
      相关资源
      最近更新 更多