如何在Android上使用Smack永久保持用户在线?

时间:2013-07-04 10:28:06

标签: android xmpp smack asmack

好的,这是我的问题,我被困了这么多天。

我正在XMPP客户端 - SMACK的帮助下开发一个简单的聊天应用程序。 对于我从一个朋友到另一个朋友的正常聊天过程,一切正常,还添加了通知部分。

我无法做的是,如果我强行关闭我的申请,整个会议将停止SMACK。

我无法将消息发送给已关闭应用程序的用户。 现在,我如何将用户的状态永久保持在线状态,这样即使他关闭了应用程序,他也可以收到消息。

2 个答案:

答案 0 :(得分:1)

你做不到。如果应用程序已关闭,则用户不再在线且服务器知道该情况。您仍然可以向他们发送消息,但是存储脱机消息的服务器作业,但这意味着必须配置服务器才能执行此操作。

一旦用户再次连接,就可以检索它们。

答案 1 :(得分:0)

以下是解决问题的一些建议

继续实施:

  1. 连接每x分钟的长时间运行服务(轮询解决方案)我个人建议不要这样做,因为这会消耗网络和电池。

  2. Implement GCM in your app and server。 它在发送消息时唤醒应用程序并连接到服务器以检索有效负载。 (实际上GCM通过C2DM你可以通过谷歌发送有效载荷,甚至不必连接,但我避开了这个)