程序进入后台继续执行
生活随笔
收集整理的這篇文章主要介紹了
程序进入后台继续执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正常程序退出后,會在幾秒內停止工作;
要想申請更長的時間,需要用到
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
總結
以上是生活随笔為你收集整理的程序进入后台继续执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下使用xShell向远程L
- 下一篇: 2016.9.9《Oracle查询优化改