App有三种状态:

1. 死亡状态(未打开App);

2. 前台运行状态(打开状态);

3. 后台暂停状态(停止所有动画, 定时器, 多媒体联网等操作)

4. 后台运行状态(后台运行); ---------

需要在AppDelegate中设置:

1.  在 - (void)applicationDidEnterBackground:(UIApplication *)application方法中 设置:

  

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

// 向操作系统申请后台运行资格, 能维持多久是不确定的.

[application beginBackgroundTaskWithExpirationHandler:^{

}];

所以:如果想让程序一直在后台运行, 需要做一下设置:

// 向操作系统申请后台运行的资格,能维持多久,是不确定的

UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{

// 当申请的后台运行时间已经结束(过期),就会调用这个block

// 赶紧结束任务

[application endBackgroundTask:task];

}];

// 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay

// 搞一个0kb的MP3文件,没有声音, 循环播放

// 以前的后台模式只有3种

// 保持网络连接

// 多媒体应用

// VOIP:网络电话

}

App在后台运行的更多相关文章

  1. 如何禁止App在后台运行以及如何保存和恢复App的状态

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果禁止App在后台运行 iOS上的App类似于Windows ...

  2. iOS保持App真后台运行

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

  3. 安卓开发app在后台运行时页面数据被系统清除后操作之重启APP

    在安卓开发过程中,当点击HOME键,将app运行在后台时,然后再点击app图标进入时,遇到了如下两种情况: 1.每次打开时,app的入口页面总是被执行. 2.当运行内存被其它应用占用完时,在进入app ...

  4. app额外后台运行操作

    //在视图中运行操作中进行周期操作 - (void)applicationDidEnterBackground:(UIApplication *)application { [self beingBa ...

  5. App在后台运行时如何保存数据到sqlite数据库

    iOS程序进入后台后,是不允许读写任何文件和数据库(sqlite),但是允许读写NSUserDefault中的数据. 因此在后台时如果想存储数据,则可使用NSUserDefault(偏好设置)临时保存 ...

  6. xamarin.android App在后台运行不退出

    /// <summary> /// 重写按键事件 /// </summary> /// <param name="keyCode"></p ...

  7. iOS开发:后台运行以及保持程序在后台长时间运行

    第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中 ...

  8. APP长时间后台运行

    *  参考:http://www.nivalxer.com/archives/187 首先,我要说明的是在iOS中,一般应用程序在后台挂起之后仅拥有3分钟时间来处理相应的未完成事件,但是3分钟之后就会 ...

  9. 判断App是否在后台运行

    在一些场景中,经常会需要判断App是否在后台运行,比如是否显示解锁界面,收到新消息是否显示Notification等.需求可能是多样化的,但所依仗的原理是相通的,今天Stay打算说说这些需求的最优解. ...

随机推荐

  1. jAVA HDU1001题

    import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner cin=ne ...

  2. Android(java)学习笔记162:Android启动过程(转载)

    转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...

  3. eclipse 注释模板设置

    方法注释模板 /** * @title ${enclosing_method} * @description ${todo} * ${tags} ${return_type} * @Date ${da ...

  4. VBA控件ListBox的BoundColumn和TextColumn用法,Value和Text的用法

    在使用Excel编写VBA程序时,用到ListBox,然后研究了下它的所有属性.其实这个控件功能很不好用,太老了,最重要的是还不支持鼠标滚轮,很不好操作,但是考虑到兼容性,还是使用它. 其实读取.写入 ...

  5. C#迭代语句

    1,do while语句 do语句重复执行语句或者语句块,直到指定的表达式为false为止.循环体如果为单个语句,可以不放在{}内,如果不是,那么必须放在{}内.如下面的代码 Codeint i=0; ...

  6. 教你记住ASP.NET WebForm页面的生命周期

    对于ASP.NET Webform的开发者,理解ASP.NET Webform的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特定的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供 ...

  7. Linq 的IQueryable和IEnumerable方式

    IEnumerable方式: public IEnumerable<WebManageUsers> GetWebManageUsers(ISpecification<WebManag ...

  8. MySQL分区表例子——List分区

    列表分区(List分区) 这里假设表中有一个sale_item_type 字段,数据类型为INT 型 当sale_item_type 为1,3,5的时候,作为一个分区 当sale_item_type  ...

  9. Jstl标签库/Filter过滤器

    JSTLJSP Standard Tag Library JSP标准标签库 是Sun公司定义的一套标准,由Apache组织基于这套标准开发的一套标准库之后又转给Sun公司被称为JSTL,成为了java ...

  10. swing容器继承重绘问题解决

    swing容器继承重绘问题解决   以JPanel为例,继承JPanel,想动态为器更换背景,这就涉及到重绘问题.一下是本人重写代码: package ui; import java.awt.Grap ...