我们很多时候需要在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;
}