iOS后台模式以及后台持续运行
一、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后台模式以及后台持续运行相关推荐
- 腾讯云-轻量应用服务器部署Springboot项目+后台持续运行
目录 一.准备工作 1.1 服务器 1.2 本地Springboot项目 1.3 用到的工具 二.上传本地数据库 2.1 转储sql文件 2.2 导入sql文件到服务器数据库 三.修改项目配置文件 3 ...
- IOS实现Voip应用后台运行需要的几个配置项
转自出处:http://blog.csdn.net/wzzvictory/article/details/8815590 IOS实现Voip应用后台运行需要的几个配置项 作者:wangzz 原文地址: ...
- iOS保持App真后台运行
https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就 ...
- linux启动jar后运行其他命令,Linux 部署jar 后台持续运行
一.短暂运行命令:java -jar xxx项目-0.0.1-SNAPSHOT.jar; 说明: 1.关闭服务器连接时会关闭此程序进程. 2.日志输出到控制台了,且当 ctrl+c 时,线程就终止了, ...
- 让程序在服务器后台持续运行
让程序在服务器后台持续运行 1.安装screen CentOS系列: yum install screen Ubuntu系列: sudo apt-get install screen 2.创建scre ...
- IDA官网发布的每周技巧8----以批处理模式在后台运行IDA
hex-rays官方发布了一套<Igor的IDA每周技巧>系列文章,内容不错,故进行跟踪翻译,期望对大家有所帮助. 第8篇原文:Igor's tip of the week #08: Ba ...
- 苹果iOS 7四种后台机制 优劣比较详细解析
[iOS7后台机制详细解析]iOS系统作为市面上最受欢迎的移动操作系统,流畅的系统滑动和出色的操作体验是值得称道的.虽然iOS系统的后台伪多任务一直被Android用户所诟病,但从笔者看来iOS和An ...
- ios后台刷新,后台定位,后台下载
iOS 7中,实际上APP拥有四种后台模式,无论是哪一种后台机制,均需要利用苹果给予的相应后台接口实现.IOS7系统中,开发者可以灵活利用多种后台接口(API)实现更加智能的应用操作. 一,无后台仅推 ...
- (0081)iOS开发之无限后台定位并上传数据到服务器
关键词:ios 后台持续定位 iOS 后台的理解 // http://blog.csdn.net/u013773524/article/details/52153917 // http://blog. ...
最新文章
- 【Android】adb命令总结
- 05-dispatch_semphore
- 缺陷大扫除(Bug Bash)
- td不显示边框_FANUC Series 0i Mate-TD系统上电显示SP1241 (S)D/A变换器异常维修,FANUC主板SP1_维修中心...
- 蓝桥杯利用字母可以组成一些美丽的图形,
- .NET 关于Geometry转GeoJson
- hdu oj1095题解
- java导出excel float_【Java】导入导出Excel表格
- SpringMvc 文件上传后台处理
- windows进程 windows多进程编程
- 自己电脑配置Oracle WebLogic Server
- 项目实施方案指导性文件
- 【Opencontrail】opencontrail对接k8s
- pands 画图 调整大小_用宏命令对word里的图片尺寸大小进行批量修改的方法
- mysql结果作为另一次查询_MySql中一次查询结果用作二次查询条件
- android顶部导航高度,快速实现顶端导航栏(ToolBar+TabLayout+Viewpager)
- win10防火墙推荐设置来保护计算机,win10提示windows防火墙没有法更改某些设置如何办?...
- Leetcode_96_Unique Binary Search Trees
- 笔记本重新启动计算机,电脑正在重新启动很久了怎么办
- 马上就2023年了,Go语言成了吗?