我的应用程序使用这个库创建一个websocket连接到URL。一切正常。该应用程序是一个通信应用程序(发送和接收消息)。当应用程序进入后台(按home键)时,websocket连接仍然工作,用户接收新消息的推送通知。
问题是,当应用程序在后台运行时,经过一段时间后,websocket连接会自动断开。现在这个时间间隔每次都不一样(有时是5秒,有时是5分钟)。
现在问题不在于URL(没有空闲时间/超时问题-相信我,它在其他平台上工作得很好)。所以我正在寻找这种行为的可能原因,这样我就可以解决这个问题。
当应用程序在后台运行时,websocket连接是如何断开的?此外,我是否应该运行一个连续的后台服务作为补救措施?
PS:目前应用程序中没有服务。当应用程序进入后台时,库应该让websocket连接运行。
问题是,你正在使用的库不停止连接时,应用程序是后台…但是,Android可能会终止这个进程。
Service
的存在就是为了防止这个问题。如果你在Service
中实现它,它应该解决你的问题。
Service
时,要注意内存和电池的使用情况。它们的目的是在后台无限期地运行-如果你有CPU/电池密集型代码,你可以让一些用户非常不高兴,或者Android可能会杀死Service
,如果它消耗太多的内存。