【发布时间】:2011-09-24 11:50:15
【问题描述】:
有人注意到这种奇怪的行为吗?我不能 100% 重现这个,但它发生了很多。我什至不确定这是否与内存不足警告有关。
如何(有时)重现:(在装有 iOS 4.3.3 的 iPhone 4 上,所有应用程序都有UIBackgroundModes = location,因此完全启用多任务处理)
- 启动第一个 GPS 跟踪应用程序(应用程序 A)。开始跟踪
- 启动第二个 GPS 跟踪应用程序(应用程序 B)。开始跟踪
- 启动第三个 GPS 跟踪应用程序(应用程序 C)。开始跟踪
- 步行100米
- 站着不动
- 启动另一个占用更多内存和 CPU 的 GPS 应用程序
- 转身往回走 100 m
- 停止所有 GPS 追踪应用并查看追踪的追踪结果
结果:
应用 B 和 C 都成功跟踪了完整的 200 m。但是应用程序 A(我启动的第一个应用程序)仅跟踪了 100 m(到点 5。我启动了第 4 个 GPS 应用程序)。
应用 A 没有崩溃。当我切换回来时它仍在运行(没有低内存崩溃日志或正常崩溃日志,什么都没有)。在我重新启动应用程序之前,它不再接收位置更新。
然后我用相同的设置再次尝试。但这次 App A、B 和 C 都跟踪了 200 米。
所以我唯一的解释是应用 A 在内存不足警告(可能是 level=2 ?)之后不再接收任何位置更新。
对于这种奇怪的行为还有其他解释吗?如何修复我的应用程序(应用程序 A)在停止后仍然接收位置更新? (重启位置管理器的计时器没有帮助)
【问题讨论】:
-
这不是编程题
-
@Chris 你为什么这么说?几乎可以肯定,OP 有一种方法可以解决这个问题,但我们只需要弄清楚它是什么。 :)
-
@Chris:仔细阅读这个问题。这与编程无关,但这是一个编程问答网站。我们也许确实可以提供帮助,但这里不适合这类问题。
-
@Chris -- 我明白你的意思。我想如果答案中有可以解决的代码部分,它可能会变成一个编程问题。
标签: iphone memory gps location cllocationmanager