2014-05-03 99 views
6

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

回答

14

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

onStartCommand服务登录用户。

用于接收Groupcaht或一对一聊天消息实现与PacketListener,ConnectionListener,InvitationListener

PacketListener服务。

ConnectionListener检查与服务器的连接是连接还是断开连接。

InvitationListener获取群组邀请。

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

现在,当收到消息时,在本地数据库中保存该消息,并发送广播,以便收到消息。

检查应用程序在后台运行,如果是,则发送通知新消息

mail给我,如果有哥们遇到任何问题[email protected]

+0

非常感谢。我也希望应用程序在后台继续接收消息。但为此,用户必须在线但是当用户离开聊天窗口时,用户会在我的应用程序中脱机。 –

+1

然后您的连接必须中断 实施ConnectionListener以检查连接正在关闭的位置。 1请回答 –

+0

其实我想开始一个“开始服务(unbind)”,它的任务是处理从接收消息到发送消息的所有事情。我希望我的客户端就像一个将向服务发出命令的接口一样,服务将完成必要的工作。 –

相关问题