ios后台程序持续运行方法
iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。但是有很多社交类的软件,如果因为它在后台就不能刷新到新的数据的话,那么这回影响到用户的体验,下面是将程序退到后台后可以继续运行儿不被系统清除的方法。
在appdelegate中
- (void)applicationDidEnterBackground:(UIApplication *)application{
UIBackgroundTaskIdentifier ID=[application beginBackgroundTaskWithExpirationHandler:^{
//当后台任务结束时调用
[application endBackgroundTask:ID];
} 这个函数是在程序进入后台的时候调用,我们在这个函数中先开启一个后台任务 只不过它的时间不确定, 优先级比较低 , 如果系统内存不够的话,就要被关闭了
当这一步失效后,就要使出杀手锏了,苹果系统关于后台程序的优先级有着明确的划分,如果你在播放音乐的话,那么你的优先级很高,系统一般不会清除;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
// 在真机上后台播放音乐,需要设置音频会话
AVAudioSession *session=[AVAudioSession sharedInstance]; //这是个单例模式,全局都可以使用
//设置会话类型(后台播放)
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
//激活
[session setActive:YES error:nil];
}
// 即将失去焦点的时候
- (void)applicationWillResignActive:(UIApplication *)application {
NSURL *url=[[NSBundle mainBundle]URLForResource:@"aaa.mp3" withExtension:nil]; //aaa.mp3是一首无声的音乐
AVAudioPlayer *player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
[player prepareToPlay];
//一直循环播放
player.numberOfLoops=-1;
[player play];
_player=player;
}
使用以上两步就可以成功的欺骗苹果系统,咱们的程序就可以一直在后台运行。
ios后台程序持续运行方法的更多相关文章
- 用JQuery中的Ajax方法获取web service等后台程序中的方法
用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...
- Windows系统中设置Python程序定时运行方法
Windows系统中设置Python程序定时运行方法 一.环境 win7 + Python3.6 二.步骤 1,在Windows开始菜单中搜索“计划任务”,并且点击打开“计划任务”: 2.点击“创建基 ...
- 让java程序在后台一直执行(例如putty关闭后后台程序继续运行)
如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台 ...
- 程序自启动及后台持续运行的研究(voip和GPS方式)
1,voip方式 1)首先要修改应用的plist配置,添加下面的设置: Application does not run in background: NO Requ ...
- iOS程序进入后台后仍运行定时器NSTimer
由于本应用需要在应用进入后台后还要进行定时的检测功能,因此对于我来说怎样让APP在进入后台后 保持运行状态是比较大的需求.然后在iOS系统中是很难实现的,不管是 通过 音频还是 定位系统,我查找了一些 ...
- 原创翻译:iOS 应用程序 蓝牙后台运行
默认情况下,普通的CoreBluetooth 任务中的大多数,无论是Central还是peripheral ,在后台或者挂起状况下都是无法进行的.也就是说,你可以通过宣布你的应用程序支持后台处理模式来 ...
- iOS后台运行
http://www.cocoachina.com/bbs/read.php?tid=149564 文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后 ...
- 实现iOS长时间后台的两种方法:Audiosession和VOIP(转)
分类: Iphone2013-01-24 14:03 986人阅读 评论(0) 收藏 举报 我们知道iOS开启后台任务后可以获得最多600秒的执行时间,而一些需要在后台下载或者与服务器保持连接的App ...
- iOS 后台运行实现 --备用
文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 ...
随机推荐
- 如何区分Shapefile,Coverage,Geodatabase(转载)
转自:http://www.cnblogs.com/linhugh/archive/2012/04/06/2435266.html 在过去20年中,矢量数据模型是GIS中变化最大的方面,例如,ESRI ...
- HDOJ --- 1160
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- Delta-wave
Delta-wave Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)
上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...
- Enter键提交表单
input type="submit"在360浏览器上不能提交 用了这个 <input type="button" class="btn b ...
- Web---JS-返回上一页并刷新代码整理
返回上一页并刷新在此功能有利于用户的体验,是每一个web开发人员所必备的一项,长话短说,今天介绍实现此功能的一个方法,需要了解的朋友可以参考下: 一:JS 重载页面,本地刷新,返回上一页 代码如下: ...
- bzoj 1876 [SDOI2009]SuperGCD(高精度+更相减损)
1876: [SDOI2009]SuperGCD Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 2384 Solved: 806[Submit][Sta ...
- Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
2252: [2010Beijing wc]矩阵距离 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 563 Solved: 274[Submit][ ...
- poj 2186 Popular Cows【tarjan求scc个数&&缩点】【求一个图中可以到达其余所有任意点的点的个数】
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 27698 Accepted: 11148 De ...
- UVA 6199 不定根最小树形图
首先是最小树形图的介绍. 看这个博客.最小树形图 上面介绍的很详细了,我就讲一下这道题的题意. 首先给出一些二维点坐标,这些坐标之间构成一些有向图,根据题意,假设两个点a(x1 ,y1) ,b(x2 ...