android webservice 后台服务,Android Websocket服务永久连接

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

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

解决方法:

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值