我们都知道“多任务处理=同时执行多个进程的能力”这一教训。我们在计算机中使用它,但并没有特别意识到它的存在。应用程序或一个应用程序的窗口之间的切换(对我们来说)是实时发生的,我们认为操作系统的这种能力是理所当然的。
任务不同
操作系统以较小的时间间隔将处理器分配给所有应用程序。这些时间段非常小,我们无法注意到它们,因此看起来好像所有应用程序都在同时使用处理器。我们可能会这么想 iOS 4 中的多任务处理 工作原理完全相同。不是这样。主要原因当然是电池容量。如果所有应用程序真的都在后台运行,我们可能需要在几个小时内寻找套接字。
大多数与 iOS 4 兼容的应用程序在按下主页按钮后都会进入“挂起模式”或进入睡眠状态。打个比方,合上笔记本电脑的盖子,笔记本电脑会立即进入睡眠模式。打开盖子后,笔记本电脑被唤醒,一切都与盖子关闭之前的状态完全相同。此外,有些应用程序按主页按钮会导致它们结束。我们的意思是真正的终止。开发人员可以选择使用这些方法中的哪一种。
但还有另一类应用程序。这些是真正在后台运行的应用程序,即使您在 iDevice 上执行完全不同的操作也是如此。 Skype 就是一个很好的例子,因为它需要持续的互联网连接。其他示例可能是播放背景音乐 (Pandora) 的应用程序或需要持续使用 GPS 的应用程序。是的,即使这些应用程序在后台运行,也会耗尽您的电池电量。
睡觉还是击落?
某些与 iOS 4 兼容的应用程序在按下 Home 按钮后应进入睡眠状态(进入“挂起模式”),但仍会在后台继续运行。苹果给了开发者整整十分钟的时间让应用程序完成其任务,无论是什么。假设您正在 GoodReader 中下载文件。突然有人想给您打电话,您只需接听这个重要的电话即可。通话持续时间不超过十分钟,您将返回到 GoodReader 应用程序。该文件可能已被下载或仍在下载中。如果通话时间超过十分钟怎么办?应用程序(在我们的例子中为 GoodReader)必须停止其活动并告诉 iOS 它可以进入睡眠状态。如果她不这样做,她将会被 iOS 本身无情地终止。
现在您知道“移动”和“桌面”多任务处理之间的区别。虽然应用程序之间切换的流畅性和速度对于计算机来说很重要,但电池寿命对于移动设备来说始终是最重要的。多任务处理也必须适应这一事实。因此,读完本文后,如果你按两次Home键,你将不再看到“后台运行的应用程序栏”,而本质上只是“最近使用的应用程序列表”。
作者:丹尼尔·赫鲁斯卡来源: onemoretap.com
嗯,有趣:) 我一直认为它总是与在 Unix 上完成的方式类似。应用程序已分配零 CPU 时间,进程仅位于内存中,所有资源均已分配。所以我不得不按两次主键并立即停止应用程序以将其删除。那么这是否意味着即使下部隐藏表单中有应用程序图标,该应用程序仍然很早之前(10分钟后)就关闭了?
在下面的列表中,只有最近打开的应用程序,其中一些仍然可以运行,一些被挂起,一些被完全终止。从列表中手动删除应用程序会产生“副作用”,如果它恰好正在运行(或挂起),它将被终止。
应用程序必须告诉自己这 10 分钟的时间,并且不能保证它会得到这些时间。
好吧,这并没有消除我对从列表中关闭应用程序的痴迷(如果它不小心吃掉了资源怎么办,对吧?:-D)
我的理解是,这 10 分钟适用于需要在后台运行且不属于“Skype、GPS 和音乐播放”类别的应用程序。其他应用程序切换到挂起模式并保留在内存中,直到需要该内存进行其他操作为止。
挂起模式的优点是,如果您随后需要终止应用程序,您不会丢失其数据,所有内容都将在切换到挂起状态时保存。
或者,在播放等情况下,相当于命令 bg / fg
那么播放器或其他在后台运行任意时间的应用程序又如何呢?我的意思是,我可以“选择”作为开发人员,还是必须以某种方式得到苹果的批准?
为了使应用程序真正在后台无限时间地运行,它必须执行(注册)以下操作之一:
– 使用定位服务 (GPS)
– 在后台播放音乐
– 使用 VOIP(IP 语音)
根据标题(深入了解),我希望这篇文章包含更广泛的技术细节解释。从这篇文章来看,这看起来更像是一个 perex。如果是perex,续集什么时候出?你能得到退款吗? :-)
您想更详细地了解什么?
从标题中包含“under the hood”的文章中,我期望有详细的技术描述(例如,作者可以分析切换应用程序时的开销,或者如何处理对系统资源的同时访问),与其他模型的比较(例如,使用越狱的 iPhone)。最好通过一些测量来支持它。我只是对一篇标题中有“幕后花絮”的文章抱有更多的期望,而不是这种非常肤浅的描述。
是否有像 Skype 这样在后台持续运行并且不会断开连接的 icq 客户端?
应用程序有 10 秒的时间进入挂起模式,而不是 10 分钟……在此过程中,某些部分可能会也可能不会“挂起”在后端服务上,其中一些已经在上面列出了 - 这就是 Apple 所说的“智能” “多任务处理......然后系统就把她击落了
如果正在下载、上传或处理某些内容,应用程序可能需要额外的时间。它与 GPS、VoIP 或播放音乐无关,它们以极简模式无限时间运行。