iOS应用是否在后台运行?


15

假设我在iPhone上安装了十几个游戏和实用程序,然后又安装了WhatsApp,WeChat,Line等聊天应用,

  1. 当iPhone重新启动时,所有这些应用程序是否也可以启动并占用宝贵的处理器时间和系统资源?

  2. 如果我启动一个应用程序,然后显式双击“主页”按钮,然后将其滑出(退出),该怎么办。它或它的一部分现在还是以后仍可以在后台运行?

  3. 由于WhatsApp,WeChat,Line和Facebook消息都会通知我新消息,因此,当我重新启动iPhone时,它们似乎将立即运行。他们在后台使用我的CPU吗?另外,即使我在“设置”中关闭了“应用刷新”,似乎这些应用仍可能在后台运行。真的吗?

一个大问题是,如果我确实安装了所有《愤怒的小鸟》变体,一些赌场轮盘游戏以及所有的《割破绳子》版本,请不要理会删除它们(手机具有128GB的存储空间)。然后,所有这些应用程序都可能在iPhone重新启动时运行还是随机运行,并占用处理器时间和系统资源(例如RAM)?


1
我已经发布了一份很长的指南,介绍了这里的所有内容,希望对您有所帮助!
owlswipe

我的回答有帮助吗?请接受它或告诉我它有什么问题,以便我可以做得更好!:)
owlswipe

Answers:


29

对于在后台如何以及何时运行应用程序,Apple有非常严格的指导原则

以下是第三方iOS应用程序可以在后台使用CPU 的唯一方案。

后台抓取

任何应用程序都可以使用“背景获取”(又称为后台应用刷新)在后台获取内容几秒钟,大约一天一次(在iOS规定的时间范围内,不受开发人员控制)。Background Fetch占用的电池和CPU很少,并且主要由新闻/天气/社交媒体/邮件应用程序用来更新Feed,因此当您打开该应用程序时,它不会完全过期。

音频,IP语音,蓝牙通信

如果某个应用程序在后台播放音频(通过AirPlay或通过手机的扬声器),则iOS允许它在后台运行,直到停止播放音乐为止;如果某个应用允许您在后台拨打基于数据的电话(如Whatsapp或Skype通话),则在通话过程中可以使用CPU保持活动状态;而且,如果某个应用程序与蓝牙配件通讯(例如与Pebble应用程序与Pebble Smartwatch通讯的通讯),它可能会在后台永久保持唤醒状态。

报亭下载,远程通知

报亭应用程序(只要它们被Apple批准为主要新闻机构,并显示在App Store的报亭中),就可以在后台下载新内容;需要显示应用程序外部生成的通知(例如,突发新闻通知)的任何应用程序(例如《纽约时报》应用程序)都可以在后台保持清醒状态,以接收此类“远程”通知。

位置更新

如果您允许某个应用“始终”使用您的位置(即在后台),那么它可以在后台的任何时间处于活动状态。Facebook,Find Friends等应用程序使用此功能来更新与位置相关的信息,尽管其他应用程序可以使用它秘密地使用它来在后台执行任务(但前提是您明确允许它们访问您的位置)。


一个非常普遍的误解是在应用程序上“刷掉”以杀死它会阻止它在后台运行:这完全是不正确的。具有上述七个原因之一的应用程序可以在后台运行,而无论您是“掠过”这些应用程序,还是没有这七个原因之一的应用程序都无法在后台运行即使您不杀死它们,也可以在屏幕上看到它们。

另一个误解(您似乎已经意识到了!)是,关闭“ Background App Refresh”(后台应用程序刷新)将阻止应用程序在后台运行。实际上,这只会使应用程序无法使用后台提取,但如果它也具有其他六个原因之一,则无论后台应用程序刷新开关如何,它都可以在后台运行。


那么,您安装的应用是否在后台使用CPU,内存,电池或数据?您可以轻松找出!去Settings你的iPhone,找到Battery部分,并采取偷看。如果某个应用在其名称下显示“ Background Activity”,则表明该应用在后台使用CPU;否则,它不会在后台执行任何操作。

这是一个示例屏幕截图:

在此处输入图片说明

在此iPhone上,播客已在后台运行,但其他任何应用程序都没有。进入“电池设置”是一种判断“愤怒的小鸟”是否已在后台运行的简单方法。


因此,直接回答您的问题:

当iPhone重新启动时,所有这些应用程序是否也可以启动并占用宝贵的处理器时间和系统资源?

仅当将它们专门配置为在后台运行时,您才能在iPhone的“电池”设置中检查它们是否一直在执行此操作。

如果我启动一个应用程序,然后显式双击“主页”按钮,然后将其滑出(退出),该怎么办。它或它的一部分现在还是以后仍可以在后台运行?

是。例如,如果Facebook使用位置服务(确实如此),则向上滑动以杀死Facebook应用程序并不会阻止它在后台使用您的位置,并且在使用您的位置时,它可以执行以下任何其他任务:背景也一样。

由于WhatsApp,WeChat,Line和Facebook消息都会通知我新消息,因此,当我重新启动iPhone时,它们似乎将立即运行。是否在后台使用我的CPU?另外,即使我在“设置”中关闭了“应用刷新”,似乎这些应用仍可能在后台运行。真的吗?

Whatsapp,WeChat,Line,Hangouts,FB Messenger和其他聊天应用程序使用此remote notifications功能可不时在后台检查新消息。这是预期的行为(您可以通过在“电池设置”中再次检查其应用程序的电池使用情况来检查他们的工作量),并且不应消耗过多的电池。确实,为这些应用程序关闭“应用刷新”不会有任何效果,因为这些应用程序使用远程通知,而不是后台提取来在后台运行。


TL; DR:应用程序可以在后台使用手机的资源,您可以在Settings->中查看它们的工作量Battery


信息来源:


2
很好...您能对此引用任何参考/来源吗?
极性2016年

2
@太极者无极而生所有信息来自我作为iOS开发人员的个人知识,但我还在答案的底部添加了一些资源。
owlswipe

1
极好的答案。作为一项琐事,Apple禁用了iOS 7中强制关闭的应用程序的远程通知。但是,由于强迫退出所有应用程序的人抱怨没有收到通知,因此将其放回iOS 7.1或7.2中。

2
@Phong我喜欢,我不知道!感谢:D。
owlswipe

3
您认为强制退出与应用程序是否可以使用后台执行无关,这是不正确的。Apple on BE:“ [iOS]不会在用户强制退出后重新启动应用程序。一个例外是位置应用程序...在iOS 8和更高版本中... [否则]用户必须显式启动[它]或重新启动...在[iOS]会自动将应用程序启动到后台之前。”
tubedogg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.