我的应用程序使用这个图书馆建立到 URL 的 websocket 连接。一切都很好。该应用程序是一个通信应用程序(发送和接收消息)。当应用程序转到后台(按主页键)时,websocket 连接仍然有效,用户会收到新消息的推送通知。
问题是,当应用程序处于后台时,经过一段时间后,websocket 连接会自动断开连接。现在这个时间间隔每次都不同(有时是 5 秒,有时是 5 分钟)。
现在问题不在于 URL(没有空闲的 time/timeout 问题 - 相信我,它在其他平台上运行正常)。所以我正在寻找这种行为的可能原因,以便我可以解决问题。
当应用程序进入后台时,如何断开 websocket 连接。另外,我应该运行连续后台服务作为补救措施吗?
PS:现在应用程序中没有服务。当应用程序进入后台时,库应该让 websocket 连接运行。
1 回答
问题是,当应用程序背景时,您正在使用的库不会停止连接...但是,Android 可能会终止该进程。
A
Service
专门用于防止该问题。如果你在Service
中实现它应该解决你的问题。提醒一句:仅仅因为你可以这样做并不意味着你应该这样做。实现
Service
时,请注意内存和电池使用情况。它们旨在无限期地在后台运行 - 如果你有 CPU/battery 密集代码,你可以让一些用户非常不满意,或者如果消耗太多内存,Android 可能会杀死Service
。