后台运行之[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil]
花门楼前见秋草,岂能贫贱相看老。这篇文章主要讲述后台运行之[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil]相关的知识,希望能为你提供帮助。
// 正常程序退出后,会在几秒内停止工作; // 要想申请更长的时间,需要用到 // 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(@"beginbgend============="); [self endBack]; // 如果在系统规定时间内任务还没有完成,在时间到之前会调用到这个方法,一般是10分钟 }]; }-(void)endBack { NSLog(@"end============="); [[UIApplication sharedApplication] endBackgroundTask:_backIden]; _backIden = UIBackgroundTaskInvalid; }```
【后台运行之[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil]】
原文及参考链接: https://www.jianshu.com/p/a668f1770efb https://blog.csdn.net/game3108/article/details/51147931
推荐阅读
- Spring中JdbcTemplate中使用RowMapper
- android设置GridView高度自适应,实现全屏铺满效果
- 安装VCSA6.5(vCenter Server Appliance 6.5)
- Neo4j COUNT()函数
- Neo4j聚合函数
- 如何安装Nginx Plus()
- 译JavaKotlinRNFlutter 开发出来的 App 大小,你了解过吗()
- Android6.0系统添加那些新特性
- 浅谈Android发展趋势分析