iOS 后台任务 applicationDidEnterBackground

我们很多时候需要在APP进入后台时完成一些任务,但是APP进入后台后,线程就被挂起了,是无法继续进行后续一些任务的,所以苹果爸爸给我们提供了后台任务功能,延长后台线程驻留时间,让我们在进入后台时能够继续完成一些任务,比如进入后台,上传一些log数据,或者进行一些数据的缓存工作等等。

方法很简单,示例代码如下:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    DebugNSLog(@"\n【 -- 程序进入后台 -- 】\n");
    //开启后台任务
    backTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    //后台任务完成回调,结束后台任务       
    [[UIApplication sharedApplication]endBackgroundTask:backTaskIdentifier];
        backTaskIdentifier = UIBackgroundTaskInvalid;
    }];
    //执行具体任务
    [AppShare event:AppWillEnterBackground result:@{@"Result":@"Success",@"ResultValue":@"Background"} extraValue:nil];
    [[LeBeaconManager shareInstance] getAllEnterGuardData:0];

}
- (void)applicationDidBecomeActive:(UIApplication *)application {
 //APP活跃(APP返回前台)   结束后台任务
 [[UIApplication sharedApplication]endBackgroundTask:backTaskIdentifier];
    backTaskIdentifier = UIBackgroundTaskInvalid;
}

你可能感兴趣的:(iOS 后台任务 applicationDidEnterBackground)