当按下Home键时,应用进入后台,并有5秒时间做保存或清理工作,但使用UIApplication的beginBackgroundTaskWithExpirationHandler方法可以让应用最多有10分钟的时间在后台运行。
@property(nonatomic,assign)UIBackgroundTaskIdentifier backgroundUpdateTask;
- (void)applicationDidEnterBackground:(UIApplication*)application {
[self beingBackgroundUpdateTask];
//需要后台执行的代码
NSLog(@"后台工作中。。。。。");
[self endBackgroundUpdateTask];
}
- (void)beingBackgroundUpdateTask
{
self.backgroundUpdateTask= [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundUpdateTask];
}];
}
- (void)endBackgroundUpdateTask
{
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask];
self.backgroundUpdateTask=UIBackgroundTaskInvalid;
}
网友评论
//需要后台执行的代码
NSLog(@"后台工作中。。。。。");
[self endBackgroundUpdateTask];
这调用必须begin 然后end吗?但是我看你beingBackgroundUpdateTask里面 block里面也有[self endBackgroundUpdateTask]; 这个应该怎么理解呢?