对iOS后台模式最多10分钟运行时间的进一步理解
在app进入后台时,系统初始默认是只有10s的处理时间,但如果10s不够,我们可以主动申请,网上流传最多的一个说法是10分钟。
但这种说法有个前提:
那就是iOS7之前,是这样
但从iOS7开始,我们申请后,最多只有180s的处理时间(3分钟),一直颇不理解,为什么变成了3分钟。
申请方法swift写法:
var backgroundTaskIdentifier:UIBackgroundTaskIdentifier!
backgroundTaskIdentifier = UIApplication.sharedApplication().beginBackgroundTaskWithExpirationHandler({
UIApplication.sharedApplication().endBackgroundTask(self.backgroundTaskIdentifier)
if self.backgroundTaskIdentifier != UIBackgroundTaskInvalid{
self.backgroundTaskIdentifier = UIBackgroundTaskInvalid
}
})
后来看到一个说法是:
系统主动将10分钟分为N次的分配,总的后台时间还是可以10分钟的,但我们每次申请,却只能得到180s的时间,多次以后,总的时间到达10分钟后,即使再次申请,都是无效的。
那么多次申请怎么实现呢?
我这边讲一个我碰到的情况:
比如app即使一直在后台,但我这边能够不定期收到系统回调(我用到了iBeacon),每次收到回调,都能够将我的应用唤醒10s,理论情况下,这种唤醒系统只会分配给你10s的处理时间,但我又发现10s时间是不够我处理完所有事情的。
所以我这种情况,正好可以符合这种场景,我只需要在我的回调方法里再次申请一次延长时间,就能够又得到一次最多180s的处理时间,当然如果你20s就都处理完了,时间是只算20s的。
多次申请直至系统累计到600s的时间,系统才会停止。
这种运用场景,就能充分用到10分钟,所以记录下仅供参考。
对iOS后台模式最多10分钟运行时间的进一步理解的更多相关文章
- iOS后台模式BackgroundMode
概述 iOS平台提供给应用特殊的后台服务,应用在后台时仍被允许能执行一会. 后台模式 UIBackgroundModes Xcode Modes 1. audio -> Audio.Airpla ...
- ios 后台模式
1.在后台可以继续播放音频 To play sound in the background, make sure to add the following to the Info.plist file ...
- 关于iOS后台模式
https://onevcat.com/2013/08/ios7-background-multitask/ http://zhidao.baidu.com/link?url=NUOMrLGB6Odr ...
- 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)
关于iOS的后台,以下引用一些文段进行一下脑补,请同学们大致看一下,有个基础,原文出处 -------------------------------------------------------- ...
- app进入后台申请10分钟活跃时间-b
IOS允许长时间在后台运行的情况有7种: audio VoIP GPS 下载新闻 和其它附属硬件进行通讯时 使用蓝牙进行通讯时 使用蓝牙共享数据时 除以上情况,程序退出时可能设置短暂运行10分钟 让程 ...
- iOS二进制方案真实落地经验(30分钟降低到10分钟以内)
iOS二进制方案真实落地经验(30分钟降低到10分钟以内) 我们做iOS二进制化断断续续尝试了一年多了,来来回回换了三个架构师去尝试落地,今日完全落地,在此做个总结 背景 工程基于cocoapod的组 ...
- ios xmpp开发应用后台模式接收聊天信息处理方案
ios xmpp开发应用后台模式接收聊天信息 最近在使用xmppframwork来实现一个聊天应用,碰到了一个问题,应用进入后台以后,就接收不到消息了: 怎么样才能使应用被切到后台时,应用中的网络连接 ...
- Django从Models 10分钟定制一个Admin后台
目录 Django从Models 10分钟建立一套RestfulApi Django从Models 10分钟定制一个Admin后台 简介 Django自带一个Admin后台, 支持用户创建,权限配置和 ...
- [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作
前言 本人是服务端程序员,同时需要兼职前端开发.常用的就是原生态的HTML.Javascript,也用过ExtJS.Layui.可是ExtJS变公司后非常难用.Layui上手还行,用过一段时间,会觉得 ...
随机推荐
- 新浪云SAE使用入门,教你如何发布自己的网站
新浪云sae是一个免费的web服务器,SAE的Web服务器采用分布式部署的方式,开发者将代码部署到SAE前端机后,会通过同步的方式,将代码部署到SAE所有的Web服务器.相当于在每一台Web服务器上都 ...
- 用API网关把API管起来
最开始只是想找个API网关防止API被恶意请求,找了一圈发现基于Nginx的OpenResty(Lua语言)扩展模块Orange挺好(也找了Kong,但是感觉复杂了点没用),还偷懒用Vagrant结合 ...
- 基于sticky组件,实现带sticky效果的tab导航和滚动导航
上文提供了一个改进版的sticky组件,并将演示效果应用到了自己的博客.有了类似sticky的这种简单组件,我们就可以在利用它开发更丰富的效果,比如本文要介绍的tab导航和滚动导航.实现简单,演示效果 ...
- 7.2 数据注解属性--TimeStamp特性【Code-First 系列】
TimeStamp特性可以应用到领域类中,只有一个字节数组的属性上面,这个特性,给列设定的是tiemStamp类型.在并发的检查中,Code-First会自动使用这个TimeStamp类型的字段. 下 ...
- visual studio 2015 开发android
转载请注明: http://www.cnblogs.com/sunyl/p/5493249.html http://www.cnblogs.com/sunyl/ 最近有不少新闻, 甲骨文向谷歌索赔93 ...
- Java03
字符输入 Scanner scan = new Scanner(System.in); char ch = scan.next().charAt(0); 车到路口例 package C ...
- python基础之函数
python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- 【Java学习系列】第1课--Java环境搭建和demo运行
本文地址 分享提纲: 1. java环境的搭建 2. java demo代码运行 3.参考文档 本人是PHP开发者,一直感觉Java才是程序的王道(应用广,科班出身),所以终于下决心跟一跟. 主要是给 ...
- 有问题得就分享(此实现不是 Windows 平台 FIPS 验证的加密算法的一部分)
今天呢,我写完了MD5加密算法的代码,可是我正高兴的想运行时,按了F5.突然了个这样的窗体 我当时就纳闷了,怎么回事? 代码又没有错,这是乍回事! 于是呢上网查了看看:可以这样解决的 在window中 ...
- Windows8.1下安装NoSQL-- mongodb安装使用
1. 官方下载monodb:http://www.mongodb.org/downloads 现在最新版本3.0 2. 以下载Windows 64-bit为例官方最新版的没有分开, 32位和64位是应 ...