iOS后台接口模式
苹果不使用安卓的MemoryKiller内存阀值机制去结束任务杀死相关进程,它尽可能的使用现有内存。
安卓在内存低于某个值时,会根据minfree文件手忙脚乱的杀死一类进程
相反,iOS似乎没这么“先进”,更粗暴,更简单。
在内存确实贫乏的时候才去杀死老应用。更特别的是它有一些很奇葩的多任务模式。
在这里介绍8种后台任务模式。
但是这种机制只是iOS的,不被传统UNIX承认,尽管iOS使用类UNIX内核darwin。
灵活恰当的组合运用多种后台模式可实现绝大多数传统应用任务且无需手动任务管理。
前五种后台模式可谓是元老级,自iOS 4时代便出现。
[ Background TaskCompletion ]
通用后台接口
允许任何程序使用,程序后台运行时间限制为10分钟
<备注>:
旧系统的限制是连续的10分钟,即使这10分钟内锁屏或自动熄屏了,系统也不会进入真正的休眠状态。
从iOS 7这个新系统开始,一旦锁屏,立刻打断程序后台任务以进入休眠状态,程序剩余的可用后台时间则留到用户下一次唤醒设备时再继续计时,这样后台的运行时间仍是10分钟但不再是连续的。
[ Background Audio ]
后台音频服务
<XCode名称>: Audio and AirPlay
同一时间内只允许管理一个音频程序。
允许音乐播放器在后台输出音频。
[ Location Services ]
后台定位服务
<XCode名称>: Location updates
确保在软件后台暂停时仍然可以使用定位服务。
[ VoIP ]
后台VOIP电话
<XCode名称>: Voice over IP
Skype就是一种VoIP网络电话。
[ Newsstand ]
杂志后台更新
<XCode名称>: Newsstand downloads
报刊杂志利用此进行后台自动定时更新。
[ BackgroundFetch ]
后台获取
后台程序刷新,允许系统在后台刷新程序的数据,由系统统一调度。
[ Remote Notification ]
远程通知
<XCode名称>: Remote Notifications
这种推送将能够直接激活后台任务。
<备注>: 它支持静默通知(Silent Notification)。
[ Background Transfer Service ]
后台传输服务
允许任何程序使用,没有时间限制
只允许程序后台执行上传下载任务。