我有一个应用程序,只要服务器正在运行,该应用程序就会保持与服务器的活动WebSocket连接,并且服务器会不断将状态更新推送到客户端。

当应用程序发送到后台时,我希望它停止运行(而不是关闭),并且根据Cordova Doc设置“ KeepRunning”为“ false”应该可以解决问题。但是在将应用程序发送到后台后,我仍然可以在监视器应用程序和Websocket的日志中看到网络流量,因此并没有完全停止。

所以我以为我只是在应用程序进入后台之前就杀死了网络连接,但是有一个问题:“暂停”事件在应用程序重新回到前台后即在“恢复”事件触发之前就触发了。

你们如何处理?这在您的情况下有效吗?

最佳答案

似乎WebSocket.java不能处理PluginManager中的onPause事件,这意味着无论keepRunning配置设置如何,套接字都不会关闭。

根据这篇文章Phonegap / Cordova pause event triggered on resume for android; can not turn off audio as a result,您可以将keepRunning设置为true来解决pause事件的问题,并且它不会影响当前的WebSocket功能。

然后,您可能需要在代码中自行停止JS计时器(如果使用)。

您可以在我的文章here中找到有关keepRunning用法的一些相关信息。

关于android - 将keepRunning设置为false-在Android上它实际上是做什么的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26975548/

10-09 16:15