收到低内存警告后,GPS跟踪无法正常工作?

时间:2011-06-28 16:36:33

标签: iphone memory gps location cllocationmanager

是否有人注意到这种奇怪的行为?我不能100%重现这个,但它发生了很多。我甚至不确定这是否与低内存警告有关。

如何(有时)重现:(在使用iOS 4.3.3的iPhone 4上,所有应用都有UIBackgroundModes = location,因此完全启用了多任务处理)

  1. 启动第一个GPS跟踪应用程序(App A)。开始跟踪
  2. 启动第二个GPS跟踪应用程序(App B)。开始跟踪
  3. 启动第3个GPS跟踪应用程序(App C)。开始跟踪
  4. 步行100米
  5. 静止不动
  6. 启动另一个GPS应用程序,这是一个更多的内存和CPU密集
  7. 转身走100米后
  8. 停止所有GPS跟踪应用并查看跟踪的跟踪结果
  9. 结果:

    App B和C都成功追踪了200米。但App A(我开始的第一个应用程序)仅跟踪了100米(到了第5点,我开始了第4个GPS应用程序)。

    App A没有崩溃。当我换回时它仍在运行(没有低内存崩溃日志或正常崩溃日志,没有)。在重新启动应用程序之前,它不会再收到位置更新。

    然后我用相同的设置做了另一次尝试。但是这次App A,B和C都跟踪了200米。

    所以我唯一的解释是App A在低内存警告(可能是level = 2?)后不再接收任何位置更新。

    这种奇怪的行为还有其他解释吗?如何修复我的应用程序(应用程序A)在停止后仍然接收位置更新? (重启位置管理器的计时器没有帮助)

1 个答案:

答案 0 :(得分:0)

从我所看到的情况来看,如果你得到2级低内存警告,操作系统可以很快杀死违规的应用程序。 GPS报告被阻止之间可能存在一定程度,但我对此表示怀疑。

它是否始终是第一个不跟踪的应用程序(在您的示例中为应用A)?