iOS 4 的多任务究竟是怎么回事?

麦特·纽伯在 TidBITS 写的这篇文章很值得一读。简单说,大家都在谈论的 iOS 4 的多任务功能暂时还没什么用,因为目前只有很小一部分第三方软件支持 iOS 4 的后台运行设计。

iOS 4 的所谓多任务并不是传统意义上的多任务,即任何程序都可以自由地在后台运行。苹果开放给第三方软件开发者的后台运行接口只包括音频播放(例如 Pandora 等网络电台软件)、地理位置侦测(例如 GPS 软件)和网络电话(例如 Skype)等几个功能。

当你在 iOS 4 里双击 Home 按钮时,会看到一个「抽屉」式的空间出现在屏幕下方。很多人对此不解:这块空间里好像什么软件都有,怎么可能这么多软件同时在 iPhone 上后台运行呢?没错,这不可能,这些软件也并不是全都在后台运行。

在 iOS 4 里,如果你单击 Home 退到桌面,之前在运行的软件并没有退出,而是被「冻结」。它虽然被置入后台,处于凝滞状态,但仍然在运行,之前分配给它的那些系统资源仍然在位。因此,当你重新回到这个软件时,它可以立即恢复到上次退出时的状态。这就是所谓的快速切换软件功能(fast app switching),也是 iOS 4 的多任务功能的核心所在。

处于冻结状态的软件可以做某些事情,例如上面说的音频播放等等,但并不是什么都能做。Instapaper 的开发者马可·阿蒙前阵子就说过,很多人希望 Instapaper 能利用 iOS 4 的多任务特性,实现后台下载文章的功能——因为他们经常在进地铁或上飞机前忘记手动刷新 Instapaper。可惜,目前的 iOS 4 不允许他这么做。

了解了这一点,就可以知道双击 Home 调出的那个抽屉只是一层视觉介面,跟 Mac OS X 上 Command + Tab 调出的那个切换软件的介面一样。它比单击 Home 回到桌面再打开别的软件要方便,但即便是单击,上述「冻结」过程依然适用。

那么,iOS 4 上的第三方软件在什么情况下会真正退出?有三种情况:

一、系统为了省出内存而终止某个程序。

二、用户长按「抽屉」中的软件,点左上角的减号手动终止程序。

三、尚未为 iOS 4 重新编译的第三方软件是无法被冻结的,只要你退出了这个软件,它就直接被终止了。

纽伯指出,上述第三点是关键。等待第三方软件为 iOS 4 重新编译需要时间:开发者更新代码的时间,以及提交软件到 App Store 并等待苹果审核的时间。如本文开头所说,目前为止,完成了这件事的第三方软件是很少的,我能想到的只有 Pandora 和 Twitter for iPhone。连苹果在发布会上为其背书的 Skype 都尚未更新。当然,这只是时间问题。

如果你已经用上了 iOS 4,但没发觉传说中的多任务有什么用的话,希望以上的解释能令你满意。