我目前正在开发一个使用 asmack lib 连接到 XMPP 服务器的应用程序。该应用程序主要包括发送/接收消息、更改状态等。
目前,XMPP 连接位于应用程序内部,而不是某种后台服务。所以现在我想知道,是使用服务保持连接活动还是在我的应用程序实际运行时保持连接活动更好。
这是考虑到当我的应用程序在后台运行以及用户返回任何具有 XMPP 连接的活动时,我希望始终保持与 XMPP 服务器的连接。我确实喜欢这样做,如果涉及到主要活动(意味着我使用凭据连接的位置)使用相同的凭据重新连接 XMPP 连接。但我面临的问题是,当我在联系人视图中停留一段时间时,如果该活动恢复在连接处获得取消赎回权(即空指针异常),连接将在一段时间后关闭。在这里无法重新连接联系。
因此,在某种程度上,我问是否最好在我的活动被带到前台/启动后立即(重新)连接/登录,或者最好在服务中连接一次并保持此连接处于活动状态?
如果服务创建是更好的方法,如何从片段创建一个以及如何创建 XMPP 连接,我必须使用按钮进行登录和注销。如何在服务中维护这些选项。
提前致谢,