iOS APP在后台执行任务
正常APP在切换到后台后不能继续执行代码,有时我们有任务需要继续执行,目前了解到可以使用以下方法:
使用后台任务方法beginBackgroundTaskWithExpirationHandler;
1.AppDelegate.h中申明变量 @property (nonatomic) UIBackgroundTaskIdentifier backgroundTask;
2.在APP进入后台方法中开启后台任务 - (void)applicationDidEnterBackground:(UIApplication *)application {
[self begingBackgroundTask];
//执行自己需要执行的任务
[self somethingNeedToDo];
}
-(void)somethingNeedToDo{
//添加自己需要执行的操作
操作结束后调用方法:(可以在异步操作结束后回主线程调用)
[self endBackgroundTask];
}
-(void)begingBackgroundTask{
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundTask];
}];
}
-(void)endBackgroundTask{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
self.backgroundTask = UIBackgroundTaskInvalid;
}