在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分钟运行时间的进一步理解的更多相关文章

  1. iOS后台模式BackgroundMode

    概述 iOS平台提供给应用特殊的后台服务,应用在后台时仍被允许能执行一会. 后台模式 UIBackgroundModes Xcode Modes 1. audio -> Audio.Airpla ...

  2. ios 后台模式

    1.在后台可以继续播放音频 To play sound in the background, make sure to add the following to the Info.plist file ...

  3. 关于iOS后台模式

    https://onevcat.com/2013/08/ios7-background-multitask/ http://zhidao.baidu.com/link?url=NUOMrLGB6Odr ...

  4. 关于iOS后台问题( 一 )(ios后台刷新,后台定位,后台下载,真后台)

    关于iOS的后台,以下引用一些文段进行一下脑补,请同学们大致看一下,有个基础,原文出处 -------------------------------------------------------- ...

  5. app进入后台申请10分钟活跃时间-b

    IOS允许长时间在后台运行的情况有7种: audio VoIP GPS 下载新闻 和其它附属硬件进行通讯时 使用蓝牙进行通讯时 使用蓝牙共享数据时 除以上情况,程序退出时可能设置短暂运行10分钟 让程 ...

  6. iOS二进制方案真实落地经验(30分钟降低到10分钟以内)

    iOS二进制方案真实落地经验(30分钟降低到10分钟以内) 我们做iOS二进制化断断续续尝试了一年多了,来来回回换了三个架构师去尝试落地,今日完全落地,在此做个总结 背景 工程基于cocoapod的组 ...

  7. ios xmpp开发应用后台模式接收聊天信息处理方案

    ios xmpp开发应用后台模式接收聊天信息 最近在使用xmppframwork来实现一个聊天应用,碰到了一个问题,应用进入后台以后,就接收不到消息了: 怎么样才能使应用被切到后台时,应用中的网络连接 ...

  8. Django从Models 10分钟定制一个Admin后台

    目录 Django从Models 10分钟建立一套RestfulApi Django从Models 10分钟定制一个Admin后台 简介 Django自带一个Admin后台, 支持用户创建,权限配置和 ...

  9. [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作

    前言 本人是服务端程序员,同时需要兼职前端开发.常用的就是原生态的HTML.Javascript,也用过ExtJS.Layui.可是ExtJS变公司后非常难用.Layui上手还行,用过一段时间,会觉得 ...

随机推荐

  1. 我的angularjs源码学习之旅2——依赖注入

    依赖注入起源于实现控制反转的典型框架Spring框架,用来削减计算机程序的耦合问题.简单来说,在定义方法的时候,方法所依赖的对象就被隐性的注入到该方法中,在方法中可以直接使用,而不需要在执行该函数的时 ...

  2. 如何在ASP.NET的web.config配置文件中添加MIME类型

    常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...

  3. 使用pyinstaller打包Python应用,生成EXE执行文件

    在命令行中切换到要打包的程序所在目录,或者在程序目录打开命令行,直接输入下面的指令即可pyinstaller -F xxx.py pyinstaller -F -w -i manage.ico app ...

  4. [转载] php用csv文件导出大量数据

    header ( "Content-type:application/vnd.ms-excel" ); header ( "Content-Disposition:fil ...

  5. 鼠标滑过图片变暗文字链接滑出jQuery特效

    效果体验:http://hovertree.com/texiao/jquery/7.htm HTML文件代码: <!DOCTYPE html> <html xmlns="h ...

  6. 如何使用github搭建个人博客

    1.去github官网注册个人帐号:没有的:猛戳这里去注册,比如我的账户名:wjf444128852,我的已经汉化(可在github里搜索github如何汉化有插件) 2.点击仓库-新建,仓库名字必须 ...

  7. npm 初学者教程

    Node.js 让 JavaScript 编写服务器端应用程序成为可能.它建立在 JavaScript V8(C++ 编写的) 运行时之上,所以它很快.最初,它旨在为应用程序提供服务器环境,但是开发人 ...

  8. View and Data API 现在支持IE11了

    By Daniel Du After a long time waiting, IE11 finally supports WebGL, which enables us viewing our 3D ...

  9. php 7.0 安装mcrypt

    1. 添加ppa源 sudo add-apt-repository ppa:ondrej/php 2. 升级源 sudo apt-get update && sudo apt-get ...

  10. WeakReference在Handler中的应用

    public class AutoActivity extends Activity { Handler handler = new Handler(){ public void handleMess ...