【发布时间】:2014-07-25 04:16:33
【问题描述】:
我正在开发一个内部分发的 iOS 应用(即没有应用商店),我希望能够每隔 10 分钟报告一次设备的位置。
无论如何,我已将location 作为字段UIBackgroundModes 的键包含在我的plist 中,希望这足以让我的应用程序在后台运行,而我每10 分钟运行一次计时器。但是,我发现在某些情况下,应用程序会停止报告这些事件。我怀疑该应用程序正在进入暂停状态,甚至可能由于内存限制而终止。我使用工具分析了我的内存占用,并排除了内存分配失控是终止的原因。
如何防止系统将我的应用程序置于暂停状态?文档对位置背景模式这么说:
启用此模式不会阻止系统暂停 应用程序,但它确实告诉系统它应该唤醒应用程序 每当有新的位置数据要交付时
太好了。所以它可能会被暂停,但新的位置数据会重新唤醒它。但是如果没有新的位置数据呢?我可以防止应用程序被暂停吗?也许使用不同的背景模式?
非常感谢任何帮助!
【问题讨论】:
-
我想您可以使用音频播放背景模式,并在您的应用程序进入后台后开始播放无声媒体文件。根据docs,这将防止应用程序被暂停。不太适合 App Store 提交,但由于您的应用是在内部部署的,它可能适合您
-
即使使用很少的内存也可以终止。随着用户启动的应用程序越来越多,一旦应用程序数量超过内存,就会终止一些应用程序。有一些方法可以将自己标识为“好公民”,比如当你被要求释放记忆时,这意味着你会比“坏公民”活得更长,但最终你会被终止。
标签: ios core-location