一、iOS后台的几种模式
1、Background Audio,这是后台的音频,这个很早之前便有,也是iOS设备中用得最多的后台应用,调用这个接口可以实现后台的音乐播放。

2、Location Services,这是后台的定位,系统会拥有统一页面进行管理。

3、VoIP,后台语音服务,类似Skype通话应用需要调用,可进行后台的语音通话。

4、Newsstand,报刊杂志后台自动下载更新,其能够自动实时更新。
6、 Remote Notification,这是本次较大的一个改进接口,以往聊天类应用接受推送后点进去需要再收一次信息,这情况在QQ、微信等应用上最为明显。不过拥 有了这个接口后,这情况将不复存在,以后推送将能够直接启动后台任务。值得注意的是remote notification支持silent notification(静默推送),这样dropbox这类同步应用可以在后台以最节能的模式实时静默同步了,类似布卡漫画这种也可以推送正在追的漫 画的新章节并在后台静默下载,待到下载好再给用户发送一个本地推送,用户点开即看无需再联网

7、Background Transfer Service,后台上传下载。iOS最接近传统多任务的后台接口,可供任意类型的app调用,无时间限制。应用场景包括后台上传和下载数据,这使得游戏 后台更新数据包,后台上传视频等等都成为可能,但是正如其名字,它只能用于处理上传下载这种传输类的任务,类似后台剪切板监控这种它就无能为力了。
二、配置
第一步,开启后台模式,选中定位,选择project –> capabilities–>Backgorund Modes –> Location updates

第二步,在info.list 文件中添加如下配置:

允许 http 请求 ,ios 9 之后需要添加,便于向服务器发送请求

NSAppTransportSecurity

NSAllowsArbitraryLoads

添加定位权限,ios8之后需要添加,否则无法定位

NSLocationWhenInUseUsageDescription
YES
NSLocationAlwaysUsageDescription
YES

三、iOS程序进入后台后十分钟之内就会被系统kill掉,怎么解决呢?
解决: 利用苹果给出的三种类型的程序可以保持在后台运行:音频播放类,位置更新类,另外一个记不太清楚了,我利用了苹果给出的音频播放类的这个“特权”来满足我程序上的要求
1、步骤一:在Info.plist中,添加”Required background modes”键,value为:App plays audio

步骤二:

  • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
    {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    NSError *setCategoryErr = nil;
    NSError *activationErr = nil;
    [[AVAudioSession sharedInstance]
    setCategory: AVAudioSessionCategoryPlayback
    error: &setCategoryErr];
    [[AVAudioSession sharedInstance]
    setActive: YES
    error: &activationErr];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
    }

步骤三:将以下代码添加到appDelegate文件中的- (void)applicationDidEnterBackground:(UIApplication *)application函数,也可添加到在具体类中注册的应用进入后台后的通知方法

  • (void)applicationDidEnterBackground:(UIApplication *)application{

    UIApplication* app = [UIApplication sharedApplication];
    __block UIBackgroundTaskIdentifier bgTask;
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    dispatch_async(dispatch_get_main_queue(), ^{
    if (bgTask != UIBackgroundTaskInvalid)
    {
    bgTask = UIBackgroundTaskInvalid;
    }
    });
    }];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    dispatch_async(dispatch_get_main_queue(), ^{
    if (bgTask != UIBackgroundTaskInvalid)
    {
    bgTask = UIBackgroundTaskInvalid;
    }
    });
    });
    }

iOS后台模式以及后台持续运行相关推荐

  1. 腾讯云-轻量应用服务器部署Springboot项目+后台持续运行

    目录 一.准备工作 1.1 服务器 1.2 本地Springboot项目 1.3 用到的工具 二.上传本地数据库 2.1 转储sql文件 2.2 导入sql文件到服务器数据库 三.修改项目配置文件 3 ...

  2. IOS实现Voip应用后台运行需要的几个配置项

    转自出处:http://blog.csdn.net/wzzvictory/article/details/8815590 IOS实现Voip应用后台运行需要的几个配置项 作者:wangzz 原文地址: ...

  3. iOS保持App真后台运行

    https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就 ...

  4. linux启动jar后运行其他命令,Linux 部署jar 后台持续运行

    一.短暂运行命令:java -jar xxx项目-0.0.1-SNAPSHOT.jar; 说明: 1.关闭服务器连接时会关闭此程序进程. 2.日志输出到控制台了,且当 ctrl+c 时,线程就终止了, ...

  5. 让程序在服务器后台持续运行

    让程序在服务器后台持续运行 1.安装screen CentOS系列: yum install screen Ubuntu系列: sudo apt-get install screen 2.创建scre ...

  6. IDA官网发布的每周技巧8----以批处理模式在后台运行IDA

    hex-rays官方发布了一套<Igor的IDA每周技巧>系列文章,内容不错,故进行跟踪翻译,期望对大家有所帮助. 第8篇原文:Igor's tip of the week #08: Ba ...

  7. 苹果iOS 7四种后台机制 优劣比较详细解析

    [iOS7后台机制详细解析]iOS系统作为市面上最受欢迎的移动操作系统,流畅的系统滑动和出色的操作体验是值得称道的.虽然iOS系统的后台伪多任务一直被Android用户所诟病,但从笔者看来iOS和An ...

  8. ios后台刷新,后台定位,后台下载

    iOS 7中,实际上APP拥有四种后台模式,无论是哪一种后台机制,均需要利用苹果给予的相应后台接口实现.IOS7系统中,开发者可以灵活利用多种后台接口(API)实现更加智能的应用操作. 一,无后台仅推 ...

  9. (0081)iOS开发之无限后台定位并上传数据到服务器

    关键词:ios 后台持续定位 iOS 后台的理解 // http://blog.csdn.net/u013773524/article/details/52153917 // http://blog. ...

最新文章

  1. 【Android】adb命令总结
  2. 05-dispatch_semphore
  3. 缺陷大扫除(Bug Bash)
  4. td不显示边框_FANUC Series 0i Mate-TD系统上电显示SP1241 (S)D/A变换器异常维修,FANUC主板SP1_维修中心...
  5. 蓝桥杯利用字母可以组成一些美丽的图形,
  6. .NET 关于Geometry转GeoJson
  7. hdu oj1095题解
  8. java导出excel float_【Java】导入导出Excel表格
  9. SpringMvc 文件上传后台处理
  10. windows进程 windows多进程编程
  11. 自己电脑配置Oracle WebLogic Server
  12. 项目实施方案指导性文件
  13. 【Opencontrail】opencontrail对接k8s
  14. pands 画图 调整大小_用宏命令对word里的图片尺寸大小进行批量修改的方法
  15. mysql结果作为另一次查询_MySql中一次查询结果用作二次查询条件
  16. android顶部导航高度,快速实现顶端导航栏(ToolBar+TabLayout+Viewpager)
  17. win10防火墙推荐设置来保护计算机,win10提示windows防火墙没有法更改某些设置如何办?...
  18. Leetcode_96_Unique Binary Search Trees
  19. 笔记本重新启动计算机,电脑正在重新启动很久了怎么办
  20. 马上就2023年了,Go语言成了吗?

热门文章

  1. android 手机数据备份,怎么备份手机数据 手机数据备份方法介绍
  2. Error filterStart startup failed due to previous errors
  3. 「HTML和CSS入门指南」thead 标签详解
  4. soft-attention--学习笔记
  5. 用友ncc accept.jsp漏洞
  6. 麦可思发布《2019年中国大学生就业报告》
  7. python 把数字转换成中文大写
  8. detachEvent的用法
  9. 百度竞价结果中显示出网站ICO图标…
  10. 使input文本框不可编辑的3种方法