小编use*_*094的帖子

用于后台位置更新的iOS最佳做法

概观

我的公司要求我发布一个可以每两个小时检查一次设备位置的应用程序.应用程序会通过TCP/IP套接字将这些位置数据发送到我的服务器,然后根据这些非常数据(直接通过相同的TCP/IP套接字)接收信息.所以我不是试图让我的应用程序在后台模式下连续运行(实际上,这似乎是iOS中的热门话题,而且它也不适合我的项目).

为了可靠,实现这一目标的最佳做法是什么?所以,我想知道:

  • 由于我的应用程序被暂停(=无效),Apple是否允许打开套接字以便在被唤醒时发送位置didUpdateToLocation
  • 我需要多长时间才能通过套接字执行发送/接收任务?
  • 我应该创建一个真正的后台任务beginBackgroundTaskWithExpirationHandler并使用Cocoa允许的10分钟来执行我的发送/接收任务吗?
  • 有可能(并允许Apple)每2小时要求一次10分钟的后台任务,没有人工干预(即用户应该重新打开应用程序等)?

到目前为止我取得的成就/发现

  • 我在我的应用程序处于非活动状态时添加了location密钥Info.plist以便能够运行didUpdateToLocation处理程序.
  • 我可以通过我的应用程序处于前台(=活动)时打开的套接字发送和接收数据.
  • 我试着检查backgroundTimeRemaining什么时候didUpdateToLocation被调用.我得到了一个非常大的结果数,这似乎是正常的,因为在这一点上,applicationState它不在UIApplicationStateBackground但是在UIApplicationStateActive.

这些要点在官方文档中并不十分清楚,我没有找到与我的具体案例相关的主题.

谢谢你的帮助.

sockets cocoa-touch background-process core-location ios

3
推荐指数
1
解决办法
2076
查看次数