首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免后台系统频繁终止iOS应用程序

如何避免后台系统频繁终止iOS应用程序
EN

Stack Overflow用户
提问于 2016-08-19 10:03:34
回答 3查看 1.8K关注 0票数 6

我正在为iOS 8&9构建一个iOS应用程序,我面临的问题是,当该应用程序进入后台时,系统将在2到3分钟后终止它。

我的测试很简单:

  1. 我杀死了所有运行在我的iPhone上的应用程序。
  2. 我重新启动了iPhone (以确保没有其他应用程序占用内存)。
  3. 我启动了我的应用程序。
  4. 在我的应用程序里我什么也不做。
  5. 我按下"Home“按钮,将我的应用程序移到后台。
  6. 我等了两三分钟什么也不做。
  7. 我再次打开我的应用程序,令人惊讶的是,系统已经终止了它,现在它正作为一个新的启动重新启动。

一些评论:

  • 该应用程序在后台不使用CoreLocation,也不使用任何其他服务。
  • 我分析了这个应用程序,试图了解它是否占用了太多的内存。当移动到后台时,它消耗了大约25 to的RAM内存。下面附上一张截图。
  • 这种行为已经在iPhone 5,5s,6,6+上进行了测试。
  • 在iPhone 6s和6s+中,似乎需要更多的时间才能实现,但仍然会发生。

我的问题是:你知道为什么会发生这种事吗?有什么我可能没有考虑或只是忘了的?

我不想强迫我的应用程序运行在后台使用CoreLocation或类似的东西。如果系统最终杀死了我的应用程序,我会没事的。我不想要的是,每次我移动我的应用程序背景,系统终止它。

任何提示或帮助都将不胜感激。

谢谢,

EN

回答 3

Stack Overflow用户

发布于 2016-08-19 10:21:34

系统会自动关闭所有应用程序。

根据苹果公司的文件:

App终止 应用程序必须为随时发生的终止做好准备,不应>等待保存用户数据或执行其他关键任务。系统启动>终止是应用程序生命周期的正常部分.系统通常>终止应用程序,这样它就可以收回内存,并为用户启动的其他应用程序腾出空间,但系统也可能会终止那些“行为不当或没有及时响应事件”的应用程序。 挂起的应用程序在终止时不会收到任何通知;>系统会终止进程并回收相应的内存。如果应用程序>当前正在后台运行,并且没有挂起,系统会在终止之前调用其app委托的applicationWillTerminate:。>当设备重新启动时,系统不会调用此方法。 除了终止应用程序的系统之外,用户还可以使用多任务UI显式地终止>应用程序。用户启动的终止>与终止挂起的应用程序具有相同的效果。应用程序的进程是>终止的,没有向应用程序发送任何通知。 ref/doc/uid/TP40007072-CH2-SW1

您可以跟踪位置,但您肯定会看到蓝色状态栏,以指示应用程序使用GPS跟踪。

也许你可以试着用无声的通知“唤醒”你的应用程序.

如果没有必要让你的应用程序存活,请相信系统.

票数 0
EN

Stack Overflow用户

发布于 2016-08-19 13:24:23

  1. 代码中的一些错误。请在运行应用程序之前选择调试导航器.现在你可以找到你的错误了。
  2. 或者太多的记忆也会终止。
票数 0
EN

Stack Overflow用户

发布于 2016-08-19 12:22:09

在后台运行的应用程序消耗电池寿命更快,它会让你对设备产生不好的感觉,而不是应用程序,因为普通消费者不知道这是一个耗尽电池的应用程序。因此,iOS将不允许您的应用程序在后台运行,超过几秒钟。但是也有一些例外,一个应用程序可以通过声明它启动了一个后台任务来请求扩展。

有关更多信息,您可以查看以下链接:http://blog.dkaminsky.info/2013/01/27/keep-your-ios-app-running-in-background-forever/

http://www.speirs.org/blog/2012/1/2/misconceptions-about-ios-multitasking.html

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39036244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档