【问题标题】:GPS tracking not working after receiving low memory warning?收到内存不足警告后 GPS 跟踪不起作用?
【发布时间】:2011-09-24 11:50:15
【问题描述】:

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

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

  1. 启动第一个 GPS 跟踪应用程序(应用程序 A)。开始跟踪
  2. 启动第二个 GPS 跟踪应用程序(应用程序 B)。开始跟踪
  3. 启动第三个 GPS 跟踪应用程序(应用程序 C)。开始跟踪
  4. 步行100米
  5. 站着不动
  6. 启动另一个占用更多内存和 CPU 的 GPS 应用程序
  7. 转身往回走 100 m
  8. 停止所有 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


【解决方案1】:

据我所知,如果您收到 2 级内存不足警告,操作系统会很快杀死有问题的应用程序。 GPS报告被阻止之间可能存在一个级别,但我对此表示怀疑。

它总是第一个不跟踪的应用程序(在您的示例中是应用程序 A)吗?

【讨论】:

  • 是的,它似乎是第一个不再跟踪的应用程序。
  • 嗯。我建议在应用程序 A 中收集数据的位置添加一些 NSLog()s,然后从那里进行故障排除。内存警告级别 2 是您要跟踪的内容。
猜你喜欢
  • 2012-04-08
  • 2011-07-01
  • 2011-09-18
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多