iOS 实现后台运行的解决方法

作者: shaneZhang 分类: ios技术 发布时间: 2014-08-19 16:23

对于ios7,苹果支持几种后台运行模式,backgroundTask,voip,后台播放音乐等,具体看官方文档就好。

我这边需要在后台跑一个长时间运行的计时器,所以就不能让app进入suspend状态。

很早以前听说可以通过后台播放音乐来实现,借鉴了一下,测试好几天,找出来了一个还比较靠谱的方案:

1 首先要在appleDelegate方法里面的applicationDidEnterBackgroud方法里添加申请一个后台任务的方法

[[UIApplication sharedApplicationbeginBackgroundTaskWithExpirationHandler:nil]

2

然后写一个计时器实时检测 backgroundTimeRemaining

– (void)tik{

    if ([[UIApplication sharedApplication] backgroundTimeRemaining] < 61.0) {

       [[CKAudioTool sharedInstance] playFuck];

        [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];

    }

}

 [[CKAudioTool sharedInstance] playFuck];这段代码是去播放了一个无声的音乐,

很关键的一点是

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 

withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error]

案例代码

传送门

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注