iOS 7人机交互指南-iOS技术-Multitasking(多任务处理)

重要:这是针对于正在开发中的API或技术的预备文档(预发布版本)。虽然该文档在技术精确度上经过了严格的审核,但并非最终版本,仅供苹果开发者计划的注册会员使用。苹果提供这份机要文档的目的,是帮助你按照文中描述的方式对技术的选择及界面的设计开发进行规划。这些信息有可能发生变化,届时,你的设计开发方式需要基于最终版本的操作系统及文档进行相应的调整和测试。该文档或许会随着API或相关技术在未来的发展而进行更新。
多任务处理允许用户在当前使用的app中进行快速切换。
当用户切换至其他应用时,多任务处理允许app在后台进入暂停状态。当用户重新返回应用时,先前进入暂停状态的app会快速恢复,因为应用不需要重新加载UI。用户可使用多任务处理界面来选择当前使用的app。
app能否在多任务处理环境中有好的表现,主要取决于与设备上其他app的“和谐共存”。从某个水平说,app应该:
能优雅地处理应用中断,以及来自其他应用的音频(声音)。
能在停止和重启之间快速平滑地过渡。
当不在前台的时候,app要负起责任来。

以下指南可帮应用在多任务环境中取得成功。
为中断做准备,为恢复做准备。多任务处理会增加后台其他app中断你的程序的可能性。其他方面,比如展示广告和快速切换app,也会导致更频繁的中断。开发者需要更快更精确地保存app当前的状态,这样用户就能快速恢复应用,从先前中断的地方继续下去。为了给用户带来无缝的重启体验,开发者可充分利用UIKit的状态保存和恢复功能(更多信息可查看“State Preservation and Restoration”)。
确认你应用的UI可以处理iOS双层状态栏(double-high status bar)。double-high status bar会出现在通话、录音以及网络共享等正在进行的事件中。对毫无准备的app来说,状态栏额外的高度会导致布局问题,比如UI可能会叠加或覆盖。在一个多任务环境中,适当地处理double-high status bar非常有必要,因为有更多app可能会引起它出现。
为暂停做准备(要求用户注意力和主动参与)。比如,如果你的app是款游戏或者媒体观看类app,在用户离开你的app时,要确保他们不会错过任何内容或者事件。当用户重又回到游戏或者媒体观看器时,他们想继续一种从没离开过的体验。
确保应用音频表现适当。多任务处理环境中,当你的app运行时,其他应用也极有可能运行,因此你应用的音频将不得不暂停、恢复,以及处理其他应用的打断。你可以查看Sound这一章节,以帮你确保应用音频能满足用户期望,并能与设备上其他音频“和谐共处”。
尽量少使用本地通知。app可以安排在特定时间发送本地通知,不管app是暂停,在后台运行,还是根本就没有运行。为了获得最好的用户体验,开发者要尽量避免用过多通知与用户纠缠,可查看Notification Center的指南以创建通知内容。
适当的话,应用应该在后台完成用户发起的任务。用户开始一项任务,他们期望即便离开你的app后,这项任务也能完成。如果app正在进行一项不需要额外用户交互的任务,你应当在应用暂停前完成它。