我使用websockets在Android中实现了聊天应用程序.但是,当用户关闭应用程序时,与服务器的websocket连接将丢失,并且无法接收到新消息.

我从本质上迷失了方向,不知道该去哪儿?如何在应用程序中设置服务,以在用户登录以及停止应用程序后保持与服务器的连接?

解决方法:

众所周知,在Android上连续执行后台代码是不可行的.不同的ROM将在没有任何保证的情况下手动处理您的后台服务(例如START_STICKY不会在某些设备上重新启动您的服务),因此我们需要尽最大努力使用可靠执行的代码.

在这种情况下,您将有一台Websocket服务器向您的客户端传递连续的信息.当您的应用程序在后台运行时,可能会丢失一些数据.当您的应用返回到前台时,您的信息可能不同步,因此您需要再次与服务器同步,然后重新连接到Websocket.

在我的聊天应用程序中,我通过检查我的websocket服务是否在一个活动中运行onResume来实现此目的,该活动是我想要访问聊天数据的所有活动的超类(即非登录/注册活动).如果该服务未运行,则通过从端点提取更改然后重新启动服务来同步数据.这样,即使该服务在后台被终止,一旦应用返回前台,我仍将获得最新的数据和实时体验.

标签:websocket,android-webservice,android,service

来源: https://codeday.me/bug/20191120/2044595.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐