1.在appDelegate.h中声明后台任务标识符
@property (nonatomic,unsafe_unretained)UIBackgroundTaskIdentifier backgroundTaskIdentifier;
2.在,程序进入后台的方法当中添加如下代码,并在程序再次进入后台时,取消后台任务
- (void)applicationDidEnterBackground:(UIApplication *)application {
NSLog(@"程序进入后台了");
UIApplication* app = [UIApplicationsharedApplication];
self.backgroundTaskIdentifier = [appbeginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:self.backgroundTaskIdentifier];
self.backgroundTaskIdentifier =UIBackgroundTaskInvalid;
}];
//后台需要执行的任务 180s
//[self doInBackgroundTask];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
[application endBackgroundTask:self.backgroundTaskIdentifier];
self.backgroundTaskIdentifier =UIBackgroundTaskInvalid;
}