iOS开发简单的实现后台任务(诸如后台播放音乐,定时器,后台定位等)

最多能运行多长时间,没挑战过极限,具体能保持多长时间需要自己测试下。

注意:用真机测试

直接上代码

在appdelegate的.m中的进入后台时加入一些代码操作即可

  1. /**
  2. *  当app进入后台时调用
  3. */
  4. - (void)applicationDidEnterBackground:(UIApplication *)application
  5. {
  6. /**
  7. *  app的状态
  8. *  1.死亡状态:没有打开app
  9. *  2.前台运行状态
  10. *  3.后台暂停状态:停止一切动画、定时器、多媒体、联网操作,很难再作其他操作
  11. *  4.后台运行状态
  12. */
  13. // 向操作系统申请后台运行的资格,能维持多久,是不确定的
  14. //    self.task = [application beginBackgroundTaskWithExpirationHandler:^{
  15. //        // 当申请的后台运行时间已经结束(过期),就会调用这个block
  16. //
  17. //        // 赶紧结束任务
  18. //        [application endBackgroundTask:self.task];
  19. //    }];
  20. __block UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{
  21. // 当申请的后台运行时间已经结束(过期),就会调用这个block
  22. // 赶紧结束任务
  23. [application endBackgroundTask:task];
  24. }];
  25. /**
  26. 1.定义变量UIBackgroundTaskIdentifier task
  27. 2.执行右边的代码
  28. [application beginBackgroundTaskWithExpirationHandler:^{
  29. // 当申请的后台运行时间已经结束(过期),就会调用这个block
  30. // 赶紧结束任务
  31. [application endBackgroundTask:task];
  32. }];
  33. 3.将右边方法的返回值赋值给task
  34. */
  35. // 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay
  36. // 搞一个0kb的MP3文件,没有声音
  37. // 循环播放
  38. // 以前的后台模式只有3种
  39. // 保持网络连接
  40. // 多媒体应用
  41. // VOIP:网络电话
  42. }
时间: 2024-10-10 03:48:45

iOS开发简单的实现后台任务(诸如后台播放音乐,定时器,后台定位等)的相关文章

iOS开发-简单解析JSON数据

什么是JSON ? JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) ? JSON的格式很像OC中的字典和数组 ? {"name" : "Jack", "age" : 10} {"name" : ["jack", "rose", "jim"]} ? 标准JSON格式的注意点: key必须用双

iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断)

iOS音频的后台播放总结(后台网络请求歌曲,Remote控制,锁屏封面,各种打断) 2013-12-11 21:13 1416人阅读 评论(0) 收藏 举报  分类: cocoa SDK(139)  目录(?)[+] 在没有网络的情况下,音频的后台播放比较简单,google一下可以搜到很多资料,但是如果每次歌曲的请求都是通过网络,就不成了,有时可以也扛不了几首,这里总结下实现方法,可以实现像电台一样的功能,后台播放,网络请求歌曲,Remote控制,锁屏有封面,电话和听歌打断处理等.   初始化A

IOS后台播放音乐

IOS后台播放音乐 博客分类: IOS http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AudioandVideoTechnologies/AudioandVideoTechnologies.html#//apple_ref/doc/uid/TP40007072-CH19-SW32 1.首先在工程中导入播放音乐所使用的框架:AV Fo

iOS 后台播放音乐

//后台播放音乐 -(void)playAudio{ dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(dispatchQueue, ^(void) { NSError *audioSessionError = nil; AVAudioSession *audioSession = [AVAudioSession shared

使用 AVAudioSession 实现后台播放音乐

1. 前言 AVAudioSession是一个单例,无需实例化即可直接使用.AVAudioSession在各种音频环境中起着非常重要的作用 针对不同的音频应用场景,需要设置不同的音频会话分类 1.1 ?AVAudioSession的类别 AVAudioSessionCategoryAmbient –混音播放,例如雨声.汽车引擎等,可与其他音乐一起播放 AVAudioSessionCategorySoloAmbient –后台播放,其他音乐将被停止 AVAudioSessionCategoryPl

iOS开发-简单工厂模式

设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.概念很长,iOS开发中最常遇到的有单例模式,观察者模式(KVO),简单工厂模式其实在开发中也非常常见,就是由工厂类根据传入的参数,动态决定应该创建出对应的产品类的实例. 基础概念 举一个生活的例子是我们有各种中字开头的银行卡,我们每天都会消费,消费的时候每个银行卡提示不同的信息,我们可以先抽象出来一个银行卡类: @inter

IOS后台运行 之 后台播放音乐

iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,AvPlayer播放的话,要实现完美的后台音频播放,依据app的功能需要,可能需要实现几个关键的功能. 首先,播放音频之前先要设置AVAudioSession模式,通常只用来播放的App可以设为AVAudioSessionCategoryPlayback即可.模式意义及其他模式请参考文档. //后台播放

ios 后台播放音乐1条注意事项

除了设置程序的后台模式,还需要几行代码 AVAudioSession *session = [AVAudioSession sharedInstance]; [session setCategory:AVAudioSessionCategoryPlayback error:nil]; [session setActive:YES error:nil]; 不加这几行代码是无法在真机上后台播放的!(模拟器好像可以不加) 在附一张background模式的设置图

后台播放音乐

iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,AvPlayer播放的话,要实现完美的后台音频播放,依据app的功能需要,可能需要实现几个关键的功能. 首先,播放音频之前先要设置AVAudioSession模式,通常只用来播放的App可以设为AVAudioSessionCategoryPlayback即可.模式意义及其他模式请参考文档. //后台播放