// - 1. 在 AppDelegate 中写的操作
- (void)applicationDidEnterBackground:(UIApplication *)application
{
/**
* app的状态
* 1.死亡状态:没有打开app
* 2.前台运行状态
* 3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
* 4.后台运行状态
*/
// 向操作系统申请后台运行的资格,能维持多久,是不确定的
// self.task = [application beginBackgroundTaskWithExpirationHandler:^{
// // 当申请的后台运行时间已经结束(过期),就会调用这个block
//
// // 赶紧结束任务
// [application endBackgroundTask:self.task];
// }];
__blockUIBackgroundTaskIdentifier task = [applicationbeginBackgroundTaskWithExpirationHandler:^{
// 当申请的后台运行时间已经结束(过期),就会调用这个block
// 赶紧结束任务
[application endBackgroundTask:task];
}];
/**
1.定义变量UIBackgroundTaskIdentifier task
2.执行右边的代码
[application beginBackgroundTaskWithExpirationHandler:^{
// 当申请的后台运行时间已经结束(过期),就会调用这个block
// 赶紧结束任务
[application endBackgroundTask:task];
}];
3.将右边方法的返回值赋值给task
*/
}
// - 2. 在 Info.plist 中的操作
// 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
// 搞一个0kb的MP3文件,没有声音
// 循环播放
// 以前的后台模式只有3种
// 保持网络连接
// 多媒体应用
// VOIP:网络电话