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调用。无时间限制。应用场景包含后台上传和下载数据。这使得游戏后台更新数据包。后台上传视频等等都成为可能,可是正如其名字,它仅仅能用于处理上传下载这样的传输类的任务,类似后台剪切板监控这样的它就无能为力了。

IOS研究之IOS7四种后台机制的更多相关文章

  1. iOS 登陆的实现四种方式

    iOS 登陆的实现四种方式 一. 网页加载: http://www.cnblogs.com/tekkaman/archive/2013/02/21/2920218.ht ml [iOS登陆的实现] A ...

  2. iOS中常用的四种数据持久化方法简介

    iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...

  3. ipa包如何打包?ios打包ipa的四种方法分享

      今天带来的内容是ios打包ipa的四种方法.总结一下,目前.app包转为.ipa包的方法有以下几种,下面一起来看看吧!    1.Apple推荐的方式,即实用xcode的archive功能 Xco ...

  4. iOS中常用的四种数据持久化技术

    iOS中的数据持久化方式,基本上有以下四种:属性列表 对象归档 SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults st ...

  5. iOS设置圆角的四种方法

    小小圆角问题,正常情况下,我们不需要过多关心,但当屏幕内比较多的时候,还是有必要了解下性能问题的 一.设置CALayer的cornerRadius 这是最常用的,也是最简单的. cornerRadiu ...

  6. c++ 四种类型转换机制

    类型转换机制可以分为:隐式类型转换 和 显示类型转换(强制类型转换) C中的类型转换: 事情要从头说起,这个头就是C语言.我们已经习惯了使用C-like类型转换,因为它强大而且简单. 主要有一下两种形 ...

  7. IOS基础——实例变量四种范围类型

    1.为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性. 但是为了提供灵活性,苹果也让开发者显示设置范围(四选一). 2.四种编译指令如下: @private 实例变量只能被声 ...

  8. iOS 中 延迟操作四种方式

    本文列举了四种延时执行某函数的方法及其一些区别.假如延时1秒时间执行下面的方法. - (void)delayMethod { NSLog(@"execute"); } 1.perf ...

  9. ios打包ipa的四种实用方法(.app转.ipa)

    总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选 ...

随机推荐

  1. ArcGIS教程:“流向”的工作原理

    获取表面的水文特征的关键之中的一个是可以确定从栅格中的每一个像元流出的方向.这可通过流向工具来完毕. 该工具把表面作为输入,然后输出一个显示从每一个像元流出方向的栅格. 假设选择了输出下降率栅格数据选 ...

  2. python - 判断是否为正小数和正整数

    判断输入的金额是否为正整数和正小数 def check_float(string): #支付时,输入的金额可能是小数,也可能是整数 s = str(string) if s.count('.') == ...

  3. H.264 Profile

    提到High Profile H.264解码许多人并不了解,那么到底什么是High Profile H.264解码?其应用效果又是如何呢?  作为行业标准,H.264编码体系定义了4种不同的Profi ...

  4. C++学习之拷贝构造函数篇

    一.拷贝构造函数的声明 Array(const Array & arr); 二.拷贝构造函数的实现分为两种,即是深拷贝和浅拷贝. 1.浅拷贝 代码例如以下: class Array { pub ...

  5. js 代码优化 (写的可以)

    Javascript是一门非常灵活的语言,我们可以随心所欲的书写各种风格的代码,不同风格的代码也必然也会导致执行效率的差异,开发过程中零零散散地接触到许多提高代码性能的方法,整理一下平时比较常见并且容 ...

  6. ThreadLocal分析

    我们再介绍一个在多线程环境中经常使用的类ThreadLocal,它是java为解决多线程程序的并发问题提供了一种新的方向,使用这个ThreadLocal类可以帮助开发者很简单地编写出简洁的程序,并且是 ...

  7. Android显示全局Dialog

    1.需求:Dialog只能依附于某个具体的Activity显示,当我们需要一个全局的不依赖于某个Activity的Dialog时,应该怎么创建?类似于QQ消息提醒框 2.分析:我们可以在Service ...

  8. Web API中的模型验证Model Validation

    数据注释 在ASP.NET Web API中,您可以使用System.ComponentModel.DataAnnotations命名空间中的属性为模型上的属性设置验证规则. using System ...

  9. SQL Server系统函数简介[转]

    一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR ...

  10. hiho一下第107周《Give My Text Back》

    题目链接:传送门 题目大意:给你多组格式不标准的字符串句子,要你恢复到标准格式(单词中间只有一个空格或者一个逗号一个空格,句子的首字母大写其他小写,遇到回车也要换行) 题目思路:直接按题意模拟,注意几 ...