【问题标题】:iOS Backgrounding mode Location Updates - but also keep a socket openiOS 后台模式位置更新 - 但也要保持套接字打开
【发布时间】:2015-12-29 13:20:07
【问题描述】:

我有一个导航应用程序,它可以与CoreLocation(后台模式位置更新)以及通过外部传感器通过 UDP 连接提供的 GPS 数据一起使用。

我注意到,当我在后台运行应用程序时,套接字会关闭(这可能是有道理的)。

在后台保持套接字打开的过程是什么?

想法

我想也许注册为 VoIP 应用程序 - 会保持套接字打开,但现在看起来不一样了。

文档建议实现setKeepAliveTimeout:handler:,但这似乎已被弃用。

我不确定如何进行。有任何想法吗?我能想出的最好办法是让我的位置更新处理程序对套接字运行检查以查看是否有新数据 - 但我认为有一种合法的方法可以做到这一点。

【问题讨论】:

    标签: ios xcode sockets ios9 multitasking


    【解决方案1】:

    当手机进入待机状态时,所有 UDP 套接字都关闭,只能使用 TCP 连接。是的,您可以使用 VOIP 应用程序使用 UDP,但在这种情况下,您的应用程序将被拒绝,因为您没有使用真正的 VOIP 服务。我遇到了同样的问题...在我的情况下,即使手机在后台,我也想将 UDP 消息发送到 domotic 系统但不可能。

    【讨论】:

    • 在 iOS9 之前,我实际上有类似的工作,我有一个后台线程,它是位置委托,它也在检查 UDP 连接 - 当时。自 9 年以来似乎发生了变化……唉
    • 我的应用程序会运行 - 然后我们会在后台运行它并运行另一个应用程序,它会保持套接字打开并获取数据 -> 我试图用 iOS 9 重写数据堆栈,我已经遇到一种情况,它似乎正在关闭一切。我相信因为同一个线程可能可以访问位置委托,这可能也触发了套接字检查......
    • 但是位置委托使用网络? (对不起,我从来没有使用过位置)
    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2017-09-28
    相关资源
    最近更新 更多