iOS 应用进入后台后,如何短暂的执行一个任务
来源:互联网 发布:cdr软件手机版 编辑:程序博客网 时间:2024/06/04 18:24
iOS 应用进入后台后短暂的实现任务
在开发中,我们难免会碰到应用程序进入后台后,但是我们任然要执行一些任务。比如保存一个文件,跳到第三方分享的时候处理一些任务,发送一些请求什么的。但是应用进入后台后不久后就会转入暂停状态。在这种状态下,程序不会执行任何的代码,并且有可能随时被删除。有三种服务可以在后台执行。音频,定位,VoIP(VoiceoverInternetProtocol 是一种以IP电话为主,并推出相应的增值业务的技术),这三种都要在plist文件里设置相应的字段。本文说一种简单的方法,可以在应用进入后台后,任然处理一些任务。当应用进入后台以后,开启一个定时器,30秒后打印一个“时间到”。
1.当应用进入后台,在AppDelegate.m文件中,会执行以下方法:
- (void)applicationDidEnterBackground:(UIApplication *)application
2.当应用回到前台的时候,以下方法会实现
- (void)applicationWillEnterForeground:(UIApplication *)application
3.在 applicationDidEnterBackground 方法中
- (void)applicationDidEnterBackground:(UIApplication *)application{ NSLog(@"DidEnterBackground"); self.timeCount = 0; self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeRun) userInfo:nil repeats:true]; UIApplication* app = [UIApplication sharedApplication]; UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; }];}- (void)timeRun{ self.timeCount ++; NSLog(@"timeCount = %d",self.timeCount); if (self.timeCount >= 30) { NSLog(@"时间到"); if (self.timer) { self.timeCount = 0; [self.timer invalidate]; self.timer = nil; } }}
打印的结果
4.如果时间不到30秒就返回了应用,我们可以把定时器取消
- (void)applicationWillEnterForeground:(UIApplication *)application{ NSLog(@"WillEnterForeground"); if (self.timer) { self.timeCount = 0; [self.timer invalidate]; self.timer = nil; }}
这只是一个简便的实现方法。这种方法具体能持续多久时间,我也没有测过。希望有不足的地方大家可以留言指教。
0 0
- iOS 应用进入后台后,如何短暂的执行一个任务
- IOS 执行一个有限长度的后台任务
- iOS 如何巧妙解决“一个任务需要等待另外一个任务完成后才可以执行”的问题
- APP进入后台,执行任务
- ios应用后台退出后,再进入会重新启动
- ios应用后台退出后,再进入会重新启动
- iOS进入后台长时间运行后台任务
- ios后台执行任务详解
- ios后台执行任务详解
- IOS 后台无限执行任务
- IOS 后台无限执行任务
- IOS 后台无限执行任务
- IOS 后台无限执行任务
- 关于iOS 后台执行任务
- iOS用户点击推送消息进入应用后,如何跳转到对应的ViewController
- iOS用户点击推送消息进入应用后,如何跳转到对应的ViewController
- 服务的应用-后台执行的定时任务
- 一个JavaWeb后台任务执行工具的设计与实现
- 想要住的顺心,这些地方得长远考虑
- 计算机视觉--常用数据库网址
- html5-在网页中来回拖放图片
- 控制反转和依赖注入
- zju1610 count the colors 线段树
- iOS 应用进入后台后,如何短暂的执行一个任务
- java中的sleep()和wait()的区别
- ContentProvider入门
- 正则表达式学习与实例代码
- nyoj 1112 求次数
- 李白的诗赏析 : 独坐敬亭山译文注释
- 进程与线程的区别
- background-position 用法详细介绍
- 为eclipse添加NDK