background image

IOS

       的后台运行

 

 

 

我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,
也就是说可以在后台运行一小段时间(10m?)。

还有三种类型的可以运行在后以,
1.音乐
2.location
3.voip

在 IOS 后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状
态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。应用
程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务。
判断是否支持多线程

1

UIDevice* 

device

 = [UIDevice currentDevice];  

2

BOOL 

backgroundSupported

 = 

NO

;  

3

if ([device respondsToSelector:@selector(isMultitaskingSupported)])  

4

backgroundSupported

 = 

device

.multitaskingSupported; 

声明你需要的后台任务
Info.plist 中添加 UIBackgroundModes 键值,它包含一个或多个 string 的值,包括
audio:在后台提供声音播放功能,包括音频流和播放视频时的声音
location:在后台可以保持用户的位置信息
voip:在后台使用 VOIP 功能
前面的每个 value 让系统知道你的应用程序应该在适当的时候被唤醒。例如,一个应用程
序,开始播放音乐,然后移动到后台仍然需要执行时间,以填补音频输出缓冲区。添加
audio 键用来告诉系统框架,需要继续播放音频,并且可以在合适的时间间隔下回调应用
程序;如果应用程序不包括此项,任何音频播放在移到后台后将停止运行。
除了添加键值的方法,IOS 还提供了两种途径使应用程序在后台工作:
Task completion—应用程序可以向系统申请额外的时间去完成给定的任务
Local notifications—应用程序可以预先安排时间执行 local notifications 传递

后台运行官方文档
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgramming
Guide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid
/TP40007072-CH4-SW3

在 IOS 后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状
态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。应用
程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务。
判断是否支持多线程

5

UIDevice* 

device

 = [UIDevice currentDevice];