Smack(XMPP)聊天应用程序的Android后台服务

时间:2014-05-03 05:41:55

标签: android xmpp smack asmack

我正在使用asmack库实现聊天应用。我想启动一个始终运行的服务,其中所有的连接管理任务都要完成,并且应该继续接收传入的数据包并将消息保存在我的sqlite数据库中。当我的应用程序启动时,我希望我的应用程序也会收到通知消息,而后台服务将消息插入sqlite数据库。 如何用粘性服务实现这样的结构。是否还需要部分唤醒锁定。因为,有时也会根据特定需求使用http来下载图像。

1 个答案:

答案 0 :(得分:15)

您可以在服务器上注册后启动该服务。

onStartCommand服务登录用户。

使用PacketListener,ConnectionListener,InvitationListener

实现服务

PacketListener ,用于接收群聊或一对一的聊天消息。

ConnectionListener 检查与服务器的连接是否已连接或断开连接。

InvitationListener 用于获取群组邀请。

成功登录后添加这些监听器。

现在收到消息后,将该消息保存在本地数据库中,并为希望收到该消息的活动发送广播。

如果是,请检查应用是否在后台,然后发送新消息的通知

如果有任何好友面临任何问题,请发邮件给我cvofjaspreet@gmail.com