【发布时间】:2016-12-26 10:47:32
【问题描述】:
我正在为 iOS 8 和 9 构建一个 iOS 应用程序,但我遇到的问题是,当应用程序进入后台时,系统会在 2 或 3 分钟后终止它。
我的测试很简单:
- 我杀死了我 iPhone 上所有正在运行的应用程序。
- 我重新启动 iPhone(以确保没有其他应用占用内存)。
- 我启动了我的应用程序。
- 我在我的应用程序中什么都不做。
- 我按下“主页”按钮,将我的应用移至后台。
- 我等待 2 到 3 分钟什么都不做。
- 我再次打开我的应用程序并惊讶地发现,系统已将其终止,现在它正在重新启动作为新的启动。
一些cmets:
- 该应用程序在后台不使用 CoreLocation,也不使用任何其他服务。
- 我已经分析了应用程序,试图了解它是否消耗了太多内存。当移动到后台时,它会消耗大约 25Mb 的 RAM 内存。我在下面附上屏幕截图。
- 此行为已在 iPhone 5、5s、6、6+ 上进行了测试。
- 在 iPhone 6s 和 6s+ 中似乎需要更多时间才能发生,但仍然会发生。
我的问题是:你知道为什么会这样吗?有什么我可能没有考虑或忘记的吗?
我不想通过使用 CoreLocation 或类似的东西来强制我的应用在后台运行。如果系统最终杀死我的应用程序,我没问题。我不想要的是每次我将我的应用程序移到后台时系统都会终止它。
任何提示或帮助将不胜感激。
谢谢,
【问题讨论】:
-
在应用程序委托中在方法中添加断点并看到它再次调用
didFinishLaunchingWithOptions -
您的应用实际上在做什么?例如OpenGL 调用会让你的应用被杀。
标签: ios objective-c iphone memory