程序进入后台继续执行
生活随笔
收集整理的這篇文章主要介紹了
程序进入后台继续执行
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
正常程序退出后,會(huì)在幾秒內(nèi)停止工作;
要想申請(qǐng)更長的時(shí)間,需要用到
beginBackgroundTaskWithExpirationHandler
endBackgroundTask
一定要成對(duì)出現(xiàn)
?
- (void)applicationDidEnterBackground:(UIApplication *)application {[self beginTask];//在非主線程開啟一個(gè)操作在更長時(shí)間內(nèi)執(zhí)行; 執(zhí)行的動(dòng)作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]; // 任務(wù)執(zhí)行完畢,主動(dòng)調(diào)用該方法結(jié)束任務(wù) } } -(void)beginTask { NSLog(@"begin============="); _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"begin bgend============="); [self endBack]; // 如果在系統(tǒng)規(guī)定時(shí)間內(nèi)任務(wù)還沒有完成,在時(shí)間到之前會(huì)調(diào)用到這個(gè)方法,一般是10分鐘 }]; } -(void)endBack { NSLog(@"end============="); [[UIApplication sharedApplication] endBackgroundTask:_backIden]; _backIden = UIBackgroundTaskInvalid; }原文鏈接:http://www.jianshu.com/p/a668f1770efb
轉(zhuǎn)載于:https://www.cnblogs.com/daxueshan/p/5957019.html
總結(jié)
以上是生活随笔為你收集整理的程序进入后台继续执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下使用xShell向远程L
- 下一篇: 2016.9.9《Oracle查询优化改