gpt4 book ai didi

iphone - 锁定手机后 AsyncUDPSocket 管道破裂,应用程序在后台暂停

转载 作者:太空狗 更新时间:2023-10-30 03:53:40 24 4
gpt4 key购买 nike

我正在使用 AsyncUDPSocket我的 iPhone 应用程序中的第三方库在大多数情况下都很好用。我有一个 AsyncUDPSocket 的单例实例,用于所有网络流量。我的应用程序已注册在后台进行位置跟踪,并且会在后台运行时唤醒并通过网络发送位置更新数据包。这一切都可以在后台、前台、手机锁定或解锁中运行,除非我执行以下操作:

  1. 启动我的应用
  2. 在我的应用设置中禁用位置跟踪(所以没有后台唤醒)
  3. 按下主页按钮(应用程序进入后台,套接字与应用程序的其余部分“冻干”)
  4. 锁定手机
  5. 解锁手机
  6. 恢复应用
  7. 尝试重新开始跟踪并从套接字发送一些东西。我一尝试,就收到了 SIGPIPE/EPIPE 错误,并且应用程序崩溃了。

我认为处理此问题的最佳方法是在应用程序退出且未启用后台跟踪时关闭并释放套接字,但当我尝试 [socket close] [socket release]AsyncUDPSocket 上,我收到各种 EXC_BAD_ACCESS 错误。我已经向开发团队提交了一个错误,但想知道这里是否有人可以就如何完全避免 SIGPIPE 错误或通过其他方式在不释放套接字的情况下保持套接字事件提供一些想法。谢谢。

最佳答案

很好的观察 - 是的,似乎在您将任务发送到后台然后锁定手机后,套接字会掉线,下次您尝试使用它时会被 SIGPIPE 击中。

关于如何处理的想法在这里: SIGPIPE crash when switching background task(它要么为整个应用程序或套接字设置忽略 SIGPIPE,要么为它提供处理程序)

附言。另外 - 似乎忽略 SIGPIPE 的设置不适用于附加的调试器,因此请与和 w/o 进行比较。

关于iphone - 锁定手机后 AsyncUDPSocket 管道破裂,应用程序在后台暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6377950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com