最多能运行多长时间,没挑战过极限,具体能保持多长时间需要自己测试下。
注意:用真机测试
直接上代码
在appdelegate的.m中的进入后台时加入一些代码操作即可
- /**
- * 当app进入后台时调用
- */
- - (void)applicationDidEnterBackground:(UIApplication *)application
- {
- /**
- * app的状态
- * 1.死亡状态:没有打开app
- * 2.前台运行状态
- * 3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
- * 4.后台运行状态
- */
- // 向操作系统申请后台运行的资格,能维持多久,是不确定的
- // self.task = [application beginBackgroundTaskWithExpirationHandler:^{
- // // 当申请的后台运行时间已经结束(过期),就会调用这个block
- //
- // // 赶紧结束任务
- // [application endBackgroundTask:self.task];
- // }];
- __block UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
- // 当申请的后台运行时间已经结束(过期),就会调用这个block
- // 赶紧结束任务
- [application endBackgroundTask:task];
- }];
- /**
- 1.定义变量UIBackgroundTaskIdentifier task
- 2.执行右边的代码
- [application beginBackgroundTaskWithExpirationHandler:^{
- // 当申请的后台运行时间已经结束(过期),就会调用这个block
- // 赶紧结束任务
- [application endBackgroundTask:task];
- }];
- 3.将右边方法的返回值赋值给task
- */
- // 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
- // 搞一个0kb的MP3文件,没有声音
- // 循环播放
- // 以前的后台模式只有3种
- // 保持网络连接
- // 多媒体应用
- // VOIP:网络电话
- }
时间: 2024-10-10 03:48:45