App在后台运行
App有三种状态:
1. 死亡状态(未打开App);
2. 前台运行状态(打开状态);
3. 后台暂停状态(停止所有动画, 定时器, 多媒体联网等操作)
4. 后台运行状态(后台运行); ---------
需要在AppDelegate中设置:
1. 在 - (void)applicationDidEnterBackground:(UIApplication *)application方法中 设置:
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 向操作系统申请后台运行资格, 能维持多久是不确定的.
[application beginBackgroundTaskWithExpirationHandler:^{
}];
所以:如果想让程序一直在后台运行, 需要做一下设置:
// 向操作系统申请后台运行的资格,能维持多久,是不确定的
UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
// 当申请的后台运行时间已经结束(过期),就会调用这个block
// 赶紧结束任务
[application endBackgroundTask:task];
}];
// 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
// 搞一个0kb的MP3文件,没有声音, 循环播放
// 以前的后台模式只有3种
// 保持网络连接
// 多媒体应用
// VOIP:网络电话
}