App在后台运行

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:网络电话

}

时间: 2024-08-25 17:51:00

App在后台运行的相关文章

怎样防止App在后台运行,点击应用桌面图标重新启动?

怎样防止App在后台运行,点击App桌面的图标重新启动? 在项目中,遇到一个问题百思不得其解,那就是:我在app使用过程中,点击了home键,然后去看看微信之类的其他应用,这个时候再点击app桌面的图标,这个时候app是重新启动的,而不是从上次停止的界面开始的. 对于上面的情况,我觉得既然我的app已经在后台还运行着,为什么就不能继续重上一个界面继续运行,非得从新运行呢.然后我就去查资料解决了这个问题.首先讲讲这个现象的本质. 原因:当点击app桌面图标时,app默认是任务你要新建一个应用,而不

iOS保持App真后台运行

https://www.jianshu.com/p/d466f2da0d33 在我看来,苹果系统与安卓系统最直观的区别就是后台处理方式了吧,安卓手机一旦开启了很多app放到后台,即使前台什么也不做,就是切换一下系统界面都会觉得卡;苹果手机不论开多少app在后台都感觉很流畅. 这是因为安卓默认处理app为真后台,可以一直在后台处理操作; 而iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后

app额外后台运行操作

//在视图中运行操作中进行周期操作 - (void)applicationDidEnterBackground:(UIApplication *)application { [self beingBackgroundUpdateTask]; [self endBackgroundUpdateTask]; } - (void)beginBackgroundUpdateTask{ self.backgroundUpdateTask = [[UIApplication sharedApplicatio

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

第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中”的状态. 后台-app不再屏幕上显示,但它仍然执行代码. 挂起-app仍然驻留内存但不再执行代码. 按下Home键时,app从活动状态转入后台,绝大部分app通常在几秒内就从后台变成了挂起. 在内存吃紧的时候,iphone会首先关闭那些挂起的app. 从 iOS 4 开始,应用就可以在退到后台后,

IOS App 后台运行

使用block的另一个用处是可以让程序在后台较长久的运行.在以前,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirationHandler方法,让app最多有10分钟的时间在后台长久运行.这个时间可以用来做清理本地缓存,发送统计数据等工作. 让程序在后台长久运行的示例代码如下: // AppDelegate.h文件 @property (assign, nona

Android 判断app是否在前台还是在后台运行

Android 判断app是否在前台还是在后台运行,直接看代码,可直接使用. public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> appProcesses = activity

判断App是否在后台运行

在一些场景中,经常会需要判断App是否在后台运行,比如是否显示解锁界面,收到新消息是否显示Notification等.需求可能是多样化的,但所依仗的原理是相通的,今天Stay打算说说这些需求的最优解. 当然,Stay肯定不会说去for loop判断当前runningProcess或者runningTasks.比如: 这样 或者这样 这种方法调用起来感觉就像是在用Windows系统里的任务管理器,真是让人蛋疼.我们暂且不去计较性能问题,就说为啥Android连个像样的API都不给我,着实让人郁闷.

App后台运行通知函数

?[[UIApplicationsharedApplication] beginBackgroundTaskWithExpirationHandler: ^() { //程序在10分钟内未被系统关闭或者强制关闭,则程序会调用此代码块,可以在这里做一些保存或者清理工作 }];? App后台运行通知函数

ble4.0 app后台运行、报警、通知实现

先把收集到有用资料整理一下,等项目完成再写篇文章 app在后台播放报警音:https://developer.apple.com/library/ios/qa/qa1668/_index.html 后台运行设置:http://blog.shiqichan.com/ios-ble-background-central-scanning/ http://blog.csdn.net/monsterguaishou/article/details/36013659 蓝牙app后台运行接收数据.通知设定: