轉(zhuǎn)載自:?https://www.jianshu.com/p/a668f1770efb
正常程序退出后,會在幾秒內(nèi)停止工作; 要想申請更長的時間,需要用到 beginBackgroundTaskWithExpirationHandler endBackgroundTask 一定要成對出現(xiàn)
- (void)applicationDidEnterBackground:(UIApplication *)application { [self beginTask]; //在非主線程開啟一個操作在更長時間內(nèi)執(zhí)行; 執(zhí)行的動作 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í)行完畢,主動調(diào)用該方法結(jié)束任務(wù) } } -(void)beginTask { NSLog(@"begin============="); _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ NSLog(@"begin bgend============="); [self endBack]; // 如果在系統(tǒng)規(guī)定時間內(nèi)任務(wù)還沒有完成,在時間到之前會調(diào)用到這個方法,一般是10分鐘 }]; } -(void)endBack { NSLog(@"end============="); [[UIApplication sharedApplication] endBackgroundTask:_backIden]; _backIden = UIBackgroundTaskInvalid; }``` `作者:ClarkWang_001
鏈接:https://www.jianshu.com/p/a668f1770efb
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
電子發(fā)燒友App



評論