IOS研究之IOS7四种后台机制

时间:2023-02-09 15:25:35


IOS 7中,实际上APP拥有四种后台模式。不管是哪一种后台机制,均须要利用苹果给予的对应后台接口实现。IOS7系统中,开发人员能够灵活利用多种后台接口(API)实现更加智能的应用操作。

对获取开机累计时间不了解的看NSProcessInfo获取系统开机累计时间

一,无后台仅推送

第一种后台方式为传统的无后台操作,仅有苹果推送机制。这样的方式出如今iOS 3.x下面的大部分系统版本号上。这个方式下,应用在按下Home键后即会关闭退出,其数据通过苹果搭建的推送server传输。并不须要应用后台执行。

这样的方式 不太好的原因在于。每次推出后。又一次进入均须要又一次载入,尽管推送可以统一解决数据和信息的传输。但遇到须要频繁进入应用(如聊天APP)的时候便会显得 体验不好。

二,墓碑式

另外一种方式为墓碑式的后台机制。这在iOS 4后被大量採用,也就是人们所说的伪多任务。这方式相比較第一种改进的地方在于,按下Home键至主界面后。应用随即进入后台。但其被冻结,并不能进行不论什么操作。

三,智能调度后台

第三种为系统智能调度的后台。iOS 7新增的background fetch。这个后台接口在苹果WWDC 2013上有提及,其会依据用户行为自己主动调整达到效率最优的后台模式,可以处理不是非常有时效性的信息获取。比如一些社交、新闻类的应用的后台信息更 新,iOS系统便会依据应用启动频率、时间和当前网络和电量的状况来智能分配每一个应用的后台获取频率和启动时长。

因为拥有该接口的应用的数据后台刷新操作是统一调度的。因此系统可以在一个进程里面获得多个应用的数据,类似统一的推送机制。这样就行最大限度地省电。

只是这个方式也有一个缺点,那便是开发人员不能设定数据详细什么时候更新,因此这个后台方式仅仅能应用在一些时效性和敏感度不高的地方。

四。真后台

第四种方式便是真后台机制,但iOS的真后台与Android的后台机制是不一样的,为了兼顾系统体验和统一进程管理。iOS在这上面增加了众多的限制。大致拥有下面几个后台接口模式:

1、Background Audio。这是后台的音频,这个非常早之前便有,也是iOS设备中用得最多的后台应用,调用这个接口能够实现后台的音乐播放。

2、Location Services。这是后台的定位。系统会拥有统一页面进行管理。

3、VoIP,后台语音服务。类似Skype通话应用须要调用。可进行后台的语音通话。

4、Newsstand,报刊杂志后台自己主动下载更新,其可以自己主动实时更新。

5、Background Task  Completion。这个接口早在iOS 4时候便拥有,其能够供随意类型的APP使用,只是在旧系统中,这个接口的后台限制执行时间仅为10分钟,意味着当应用退至后台。其后台执行仅能持续10 分钟便会转至休眠状态。iOS 7中对这个接口作出了改变,原来的为连续10分钟。即不论你这10分钟内用户是否关闭屏幕进入休眠状态。应用仍然会在后台等待10分钟完结后推出。而新的 改进为假如遇到关闭屏幕休眠的情况,这后台执行的10分钟便会尾随一同休眠,剩余的后台时间将会留待用户再一次唤醒设备才计算。这样后台执行的时间仍然为
10分钟,但并不连续,这样做的长处为省电。

如如今有一些词典应用带有后台复制选词功能,实际上其是利用了这个接口。假设用户开启词典后并推出,即使屏幕关闭,但词典仍然在后台执行。电量消耗还是比較大的,在iOS 7上,这个问题能够得到解决。

6、 Remote Notification。这是本次较大的一个改进接口,以往聊天类应用接受推送后点进去须要再收一次信息,这情况在QQ、微信等应用上最为明显。只是拥有了这个接口后,这情况将不复存在,以后推送将能够直接启动后台任务。

值得注意的是remote notification支持silent notification(静默推送)。这样dropbox这类同步应用能够在后台以最节能的模式实时静默同步了,类似布卡漫画这样的也能够推送正在追的漫 画的新章节并在后台静默下载,待到下载好再给用户发送一个本地推送,用户点开即看无需再联网

7、Background Transfer Service,后台上传下载。iOS最接近传统多任务的后台接口。可供随意类型的app调用。无时间限制。应用场景包含后台上传和下载数据。这使得游戏后台更新数据包。后台上传视频等等都成为可能,可是正如其名字,它仅仅能用于处理上传下载这样的传输类的任务,类似后台剪切板监控这样的它就无能为力了。