iOS程序进入后台运行的实现
- 视频中看到老师用的iOS7,代码中有开启timer,无限请求数据的功能,但是切换到后台,代码就不打印了
- 自己用的iOS9,进入后台还是可以打印的,再次进入前台也可以正常运行,但是功能不实现了
- 实现程序后台运行的方法
/**
* 程序进入后台后
*
* @param application
*/
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 向操作系统申请后台运行的资格,能维持多久,是不确定的
UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
// 当申请的后台运行时间已经结束(Expiration:过期),就会调用这个block
// 赶紧结束任务
[application endBackgroundTask:task];
}];
// 在Info.plist中设置后台模式:Required background modes = App plays audio or streams audio/video using AirPlay
// 设置程序为播放音频的程序,只是这样的话,程序后台运行也会因为运行内存问题挂掉
// 实现程序后台一直运行的方案 : (并不是说程序就不会挂了,只是延长了寿命)
// 1.搞一个0KB的MP3文件,没有声音
// 2.循环播放
}
info.plist中的设置如图: