iOS开发之如何后台运行程序

首先判断是否支持多线程

UIDevice *device = [UIDevice currentDevice];
BOOL backgroundSupported = NO;
if ([device respondsToSelector:@selector(isMultitaskSupported)]) {
    backgroundSupported = device.mulltitaskingSupported;
}

声明你需要的后台任务Info.plist中添加UIBackgroundModes键值。

它包含一个或多个string的值,包括audio:在后台提供声音 播放功能,包括音频流和播放视频时的声音;

location:在后台可以保持用户的位置信息

voip:在后台使用VOIP功能 前面的每个value让系统知道你的应用程序应该在适当的时候被唤醒。

例如,一个应用程序,开始播放音乐,然后移动到后台仍然需要执行时间,以填补音频输出缓冲区。添加audio键用来告诉系统框架,需要继续播放音频,并且可以在合适的时间间隔下回调应用程序;如果应用程序不包括此项,任何音频播放在移到后台后将停止运行。除了添加键值的方法,IOS还提供了两种途径使应用程序在后 台工作:

Task completion—应用程序可以向系统申请额外的时间去完成给定的任务
Local notifications—应用程序可以预先安排时间执行local notifications 传递实现长时间的后台任务:应用程序可以请求在后台
运行以实现特殊的服务。这些应用程序并不连续的运行,但是会被系统框架在合适的时间唤醒,以实现这些服务

时间: 2024-08-08 02:15:47

iOS开发之如何后台运行程序的相关文章

学习IOS开发项目篇--如何让程序在后台保持挂起状态

程序的状态分为:前台运行,后台挂起,后台休眠,为了让项目的网络请求保持活跃状态,需要对程序进行设置. 在applicationDidEnterBackground方法中调用下面的方法,可以让程序进入挂起状态,但在未知时间内,可能会被系统设置为休眠,如果在将程序设置为播放器,并且循环播放一个MP3文件,可以保持永久挂起状态. UIBackgroundTaskIdentifier task =[application beginBackgroundTaskWithExpirationHandler:

angularJS开启服务器后台运行程序,找不到scripts/web-server.js

学习angularJS时,教程里说使用node scripts/web-server.js开启服务器后台运行程序.一直出错.后来发现原因是这是老版本里的命令.现在都是用sudo npm start就可以了 运行完sudo npm start,再开启karma测试 sudo npm test 然后再浏览器中输入http://localhost:8000/app/index.html即可访问angularJS教程里的index.html. angularJS开启服务器后台运行程序,找不到script

ios开发中iphone模拟器中程序文件和数据库的存放位置

1.使用命令: chflags nohidden ~/library/ 使隐藏的资源库文件夹显示出来.如果想要隐藏掉,使用:chflags hidden ~/library/ 2.finder中找到:用户->mwsn(这是我的用户名)->资源库->Application Support->iPhone Simulator->7.0(根据你的版本确定是哪个)->Applications 里面有一堆目录,挨个查看,找到你需要的工程的目录->Documents文件夹,你

五、清理mac缓存和关闭后台运行程序

一.清理mac 缓存  1.用鼠标点击桌面,然后按快捷键Command+Shift+G前往文件夹 2.输入路径:~/Library/Caches/ 3.清除所有的数据,把所有的Caches文件夹得都行都删除 二.关闭后台运行程序 1.打开Launchpad中的活动监视器 2.双击可以退出,正在运行的程序

shell 后台运行程序

shell 后台运行程序 http://blog.csdn.net/courage89/article/details/10561041 & 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行 ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 jobs 查看当前有多少在后台运行的命令 fg 将后台中的命令调至前台继续运行 如果后台 中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(

screen后台运行程序

用screen 在后台运行程序 我们常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了.这时,我们可以用screen命令解决这个问题. screen命令可以实现当前窗口与任务分离,我们即使离线了,服务器仍在后台运行任务.当我们重新登录服务器,可以读取窗口线程,重新连接任务窗口. 一:主要功能 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复.这一点对于远

iOS开发 底层抛析运行循环—— RunLoop

http://blog.csdn.net/zc639143029/article/details/50012527 一.RunLoop基本概念 概念:程序的运行循环,通俗的来说就是跑圈. 1. 基本作用(作用重大) (1) 保持程序的持续运行(ios程序为什么能一直活着不会死) (2) 处理app中的各种事件(比如触摸事件.定时器事件[NSTimer].selector事件[选择器·performSelector···]) (3)节省CPU资源,提高程序性能,有事情就做事情,没事情就休息 2.

iOS保持App真后台运行

https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就是切换一下系统界面都会觉得卡;苹果手机不论开多少app在后台都感觉很流畅. 这是因为安卓默认处理app为真后台,可以一直在后台处理操作; 而iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后

精通IOS开发-GCD和后台处理

一些生命周期函数的调用时间 打开应用时,调用 applicationWillEnterForeground: applicationDidBecomeActive: 按Home键,调用 applicationWillResignActive: applicationDidEnterBackground: 双击Home键,向上滑动关闭程序,调用 applicationWillTerminate: 状态保存和回复机制参考 http://developer.apple.com/library/ios/