iOS 7后,实际上APP拥有四种后台模式,无论是哪一种后台机制,均需要利用苹果给予的相应后台接口实现。新系统中,开发者可以灵活利用多种后台接口(API)实现更加智能的应用操作。
iOS 后台模式
- 无后台仅推送
- 墓碑式
- 智能调度后台
- 真后台
无后台仅推送
第一种后台方式为传统的无后台操作,仅有苹果推送机制,这种方式出现在iOS 3.x以下
的大部分系统版本上。这个方式下,应用在按下Home键后即会关闭退出,其数据通过苹果搭建的推送服务器传输,并不需要应用后台运行。这种方式 不太好的原因在于,每次推出后,重新进入均需要重新加载,虽然推送能够统一解决数据和信息的传输,但遇到需要频繁进入应用(如聊天APP)的时候便会显得 体验不好。
无后台仅推送
### 墓碑式 第二种方式为墓碑式的后台机制,这在iOS 4后
被大量采用,也就是人们所说的伪多任务。这方式相比较第一种改进的地方在于,按下Home键至主界面后,应用随即进入后台,但其被冻结,并不能进行任何操作。
智能调度后台
第三种为系统智能调度的后台,iOS 7新增的background fetch
,这个后台接口在苹果WWDC 2013上有提及,其会根据用户行为自动调整达到效率最优的后台模式,能够处理不是很有时效性的信息获取。例如一些社交、新闻类的应用的后台信息更 新,iOS系统便会根据应用启动频率、时间和当前网络和电量的状况来智能分配每个应用的后台获取频率和启动时长。
新闻类APP
由于拥有该接口的应用的数据后台刷新操作是统一调度的,因此系统可以在一个进程里面获得多个应用的数据,类似统一的推送机制,这样就能够最大限度地省 电。不过这个方式也有一个缺点,那便是开发者不能设定数据具体什么时候更新,因此这个后台方式只能应用在一些时效性和敏感度不高的地方。
真后台
第四种方式便是真后台机制,但iOS的真后台与Android的后台机制是不一样的,为了兼顾系统体验和统一进程管理,iOS在这上面加入了众多的限制。大致拥有以下几个后台接口模式:
Background modes for apps
Audio and AirPlay
该应用会向用户播放可听内容或在后台录制音频。(此内容包括使用AirPlay播放音频或视频内容。)第一次使用需要用户授权应用使用麦克风。Location updates
即使在后台运行时,该应用也会向用户通知其位置。Voice over IP
后台语音服务,类似Skype通话应用调用,可以进行后台语音通话。Newsstand downloads
报刊杂志后台自动下载更新,其能够自动实时更新。External accessory communication
该应用程序与需要通过外部附件框架定期传递更新的硬件附件配合使用。Uses Bluetooth LE accessories
该应用程序适用于需要通过核心蓝牙框架定期提供更新的蓝牙配件。Acts as a Bluetooth LE accessory
该应用程序通过核心蓝牙框架支持外设模式下的蓝牙通信。使用此模式需要用户授权;Background fetch
该应用程序定期从网络下载和处理少量内容。Remote notifications
该应用程序想要在推送通知到达时开始下载内容。使用此通知可最大限度地减少显示与推送通知相关内容的延迟。(QQ、微信)
参考: