代码之家  ›  专栏  ›  技术社区  ›  A M

codename one-设备处于待机状态时关闭套接字

  •  1
  • A M  · 技术社区  · 6 年前

    我正在开发一个iOS应用程序,使用代号一。为了从服务器接收数据,我扩展了socketconnection类。

    我在iphone 7s(ios 11.2.515d60)上测试了这个应用程序,它运行得很好。当我按下home按钮时,应用程序暂停,但它保持与socket服务器的连接。但当设备进入待机模式时,插座连接将关闭。

    为了保持插座的连接,是否可以避免这种行为?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Shai Almog    6 年前

    简而言之:不,这是件好事。

    长话短说:当一个应用程序在ios中被挂起时,如果它使用了太多的资源,操作系统会杀死该应用程序以节省电池寿命。在某些情况下,苹果确实允许一些应用程序在后台执行任务,但即便如此,它仍受到严格的限制,很难遵循这些限制并经常更改。

    通常,您会定义一个允许您在后台执行某些操作的后台行为。在这篇文章中我们讨论 background fetch 它允许您在后台时继续轮询服务器。它可能不适用于套接字。

    对于ios来说,“正确的做法”是在后台暂停连接,并使用推送通知通知用户潜在的更新。