博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序进入后台继续执行
阅读量:5985 次
发布时间:2019-06-20

本文共 981 字,大约阅读时间需要 3 分钟。

正常程序退出后,会在几秒内停止工作;

要想申请更长的时间,需要用到
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; } 原文链接:http://www.jianshu.com/p/a668f1770efb

转载于:https://www.cnblogs.com/daxueshan/p/5957019.html

你可能感兴趣的文章
更新svn版本后,在更新代码报错
查看>>
在 Mac OS X Lion 下修改 Hosts 的四种方法
查看>>
关于java中敏感词检测的一些总结
查看>>
app常规功能:检查更新 异步请求下载apk文件,更新进度条,最后安装apk
查看>>
android自定义listview的选中状态
查看>>
重用布局文件
查看>>
JDBC进行批处理Batch
查看>>
记OSX下IDEA修复
查看>>
在cmd命令窗口如何执行外有外部jar包的jar文件?
查看>>
程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreate的问题解决...
查看>>
sencha touch学习心得之FormPanel
查看>>
1.扩展方法2.接口的隐式实现和显式实现
查看>>
HDU题目分类
查看>>
HDU - 3085 Nightmare Ⅱ
查看>>
kafka java api消费者
查看>>
zabbix 获取不到自定义脚本的值解决
查看>>
在StackPanel中加入新的stackpanel,包含图片和文字
查看>>
MySQL监控内容
查看>>
Windows保护模式 - 基础篇05|解密系列
查看>>
合并链表 【微软面试100题 第四十二题】
查看>>