我正在使用 Codename One 开发一个 iOS 应用程序。我扩展了 SocketConnection 类,以便从服务器接收数据。
我在 iPhone 7s(iOS 版本 11.2.5 15D60)上测试了该应用程序,它运行良好。当我按下主页按钮时,应用程序暂停,但它保持与套接字服务器的连接。但是当设备进入待机模式时,套接字连接将关闭。
是否可以避免这种行为,以保持套接字连接?
最佳答案
简短回答:不,这是一件好事。
长答案:当一个应用程序在 iOS 中暂停时,如果它使用过多的资源,操作系统会终止该应用程序以节省电池生命周期。在某些情况下,Apple 确实允许某些应用程序在后台执行任务,但即便如此,它仍受到严格的限制,难以遵守且经常更改。
通常,您会定义一个后台行为,允许您在后台执行某些操作。例如。在这篇文章中,我们讨论 background fetch这允许您在我们处于后台时继续轮询服务器。它可能不适用于套接字。
就 iOS 而言,“正确的做法”是在后台暂停您的连接,并使用推送通知通知用户可能的更新。
关于ios - 代号一 - 设备处于待机状态时套接字关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50823378/