beginBackgroundTaskWithExpirationHandler
来源:互联网 发布:淘宝客服工作内容介绍 编辑:程序博客网 时间:2024/06/05 14:49
beginBackgroundTaskWithExpirationHandler
程序进入后台,我用这个方法beginBackgroundTaskWithExpirationHandler向系统申请更多时间,申请到的是180秒。正常是需在beginBackgroundTaskWithExpirationHandler中调用endBackgroundTask来告诉系统停止程序任务,系统到了时间就会停止任务。但是不在beginBackgroundTaskWithExpirationHandler中调用的话,是可以超出180秒的范围,我试过在任务完成后再去调用endBackgroundTask也没有出现问题,这个时间的上限是多少就没有考究过了。
以下是转自:http://www.jianshu.com/p/a668f1770efb
正常程序退出后,会在几秒内停止工作;
要想申请更长的时间,需要用到
beginBackgroundTaskWithExpirationHandler
endBackgroundTask
一定要成对出现
- (void)applicationDidEnterBackground:(UIApplication *)application { [self beginTask]; //在非主线程开启一个操作在更长时间内执行; 执行的动作 aa =0; _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(go:) userInfo:nil repeats:YES]; }-(void)go:(NSTimer *)tim{ NSLog(@"%@==%ld ",[NSDate date],aa); aa++; if (aa==9) { [_timer invalidate]; [self endBack]; // 任务执行完毕,主动调用该方法结束任务 }}-(void)beginTask{ NSLog(@"begin============="); _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"begin bgend============="); [self endBack]; // 如果在系统规定时间内任务还没有完成,在时间到之前会调用到这个方法,一般是10分钟 }];}-(void)endBack{ NSLog(@"end============="); [[UIApplication sharedApplication] endBackgroundTask:_backIden]; _backIden = UIBackgroundTaskInvalid;}
0 0
- beginBackgroundTaskWithExpirationHandler
- beginBackgroundTaskWithExpirationHandler
- beginBackgroundTaskWithExpirationHandler
- beginBackgroundTaskWithExpirationHandler
- ios 开启后台任务,beginBackgroundTaskWithExpirationHandler 使用细节问题备忘
- java 实现https请求的基本原理与介绍
- MySQL性能分析及explain
- 反射系数、驻波比、S参数之间的关系
- mfc edit使用方法
- (one) GPIO和LED
- beginBackgroundTaskWithExpirationHandler
- 浅谈函数参数中的引用传递
- iOS-通过UIWebView加载本地HTML5文件
- 在 Ubuntu 16.04 中安装谷歌 Chrome 浏览器
- View事件分发源码完整图解
- 测试人员容易遗漏一些隐藏的缺陷
- bitmapFactory压缩本地图片
- Angular 几篇关于指令的好文章收录(二)
- UIScrollView+横置UICollectionView实现滑动返回(以及每页都可滑动返回)