IOS 后台无限执行任务

找到一些关于ios后台可以继续执行任务的相关代码,分享一下:

首先需要配置Info-Plist文件,在里面新建一个Required background modes。这个是一个数组,在下面添加如下内容:

App provides Voice over IP services(VOIP)

App plays audio or streams audio/video using AirPlay(audio)

App processes Newsstand Kit downloads(newsstand-content)

App communicates using CoreBluetooth(bluetooth-central

App shares data using CoreBluetooth(bluetooth-peripheral

App registers for location updates(location)

添加完成后,在- (void)applicationDidEnterBackground:(UIApplication *)application里面添加如下代码

  1. __block UIBackgroundTaskIdentifier background_task;
  2. background_task = [application beginBackgroundTaskWithExpirationHandler:^ {
  3. [application endBackgroundTask: background_task];
  4. background_task = UIBackgroundTaskInvalid;
  5. }];
  6. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
  7. while(TRUE)
  8. {
  9. [NSThread sleepForTimeInterval:1];
  10. //编写执行任务代码
  11. }
  12. [application endBackgroundTask: background_task];
  13. background_task = UIBackgroundTaskInvalid;
  14. });
时间: 2024-10-07 05:02:33

IOS 后台无限执行任务的相关文章

ios之申请后台延时执行和做一个假后台的方法

转自:http://sis hu ok.com/forum/blogCategory/showByCategory.html?categories_id=138&user_id=10385   居然话sis hu ok.com违禁 嗨~~~   想看原文请把空格去掉 我们知道,到我们程序从前台退到后台(安home)键后,将执行程序的委托方法. // 当应用程序掉到后台时,执行该方法 - (void)applicationDidEnterBackground:(UIApplication *)ap

IOS开发之----详解在IOS后台执行

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice c

IOS 后台不断网处理

收藏 Snaiper 发表于 1年前 阅读 34 收藏 0 点赞 1 评论 0 破译"粽"子代码,拿最高悬赏!>>>   摘要: IOS 后台不断网处理 后台不断网处理  地图服务 // //  AppDelegate.m //  networkdemo // //  Created by siteview on 16/2/1. //  Copyright ? 2016年 数据结构. All rights reserved. // #import "AppD

IOS 后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务

我们知道,到我们程序从前台退到后台(安home)键后,将执行程序的委托方法. // 当应用程序掉到后台时,执行该方法 - (void)applicationDidEnterBackground:(UIApplication *)application { } 我们已经知道: 当一个 iOS 应用被送到后台,它的主线程会被暂停.你用 NSThread 的 detachNewThreadSelector:toTar get:withObject:类方法创建的线程也被挂起了. 我们假设有这么一种情况:

iOS后台挂起程序 当程序到后台后,继续完成Long-Running Task 任务

我们知道,到我们程序从前台退到后台(安home)键后,将执行程序的委托方法. // 当应用程序掉到后台时,执行该方法 - (void)applicationDidEnterBackground:(UIApplication *)application { } 我们已经知道: 当一个 iOS 应用被送到后台,它的主线程会被暂停.你用 NSThread 的 detachNewThreadSelector:toTar get:withObject:类方法创建的线程也被挂起了. 我们假设有这么一种情况:

iOS 后台挂起的一些坑

特别说明: 后台状态:当前app如果不是作为屏幕中的第一层,呈现显示给用户,那么此时app就是后台状态. 锁屏(包括:当前应用下锁屏.其他应用下锁屏.桌面锁屏) 用户在使用其他应用app2,当前 app1 虽然没有上滑kill掉,但是屏幕中的第一层显示的是app2,  那么app1就是后台了. 部分系统甚至包括:拉下系统菜单 (即:显示最近通知的菜单),上拉系统菜单 (即:显示WiFi和蓝牙的菜单).此时app 也是后台. 挂起状态:当前app后台状态,但是不一定挂起,挂起就是关于app的一切代

iOS 后台运行实现 --备用

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice c

iOS后台运行的设置方法

关于让程序保持后台运行有两种方方法: 1.直接上图:(当后台的内存实在是没有的时候,系统就会终止后台运行,也就是说这个的时间不确定的,这种方式是可怜的像后台申请后台运行的要求,是很可怜的的一种方法!!) 2.配置plist文件:在Info.plist中声明自己的应用类型为audio.在后台播放mp3(共有五种方法,这里不一一赘述,仅以audio为例,其余基本相似) 2.1>>>> 添加UIBackgroundModes中audio值,注册后台音频应用.这个值使得应用程序可以在后台使

IOS 后台运行申请更多的时间

当应用程序进入后台时,系统会自动回调应用程序委托的applicationDidEnterBackground:方法. 应用可以在该方法中完成转入后台前需要做的准备工作,所有的应用需要做以下事情. 释放所有可以释放的内存. 保存用户数据或状态信息,所有没写入磁盘的文件或信息,在进入后台之前,都应该写入磁盘,因为程序可能在后台被杀死. 进入后台时释放内存 当程序进入后台之后,为了确保获得最佳的用户体验,建议释放那些占用内存较大且可以重新获取的资源—- 这是因为当应用处于后台时,iOS系统会优先终止那