使用block的好处是可以让程序在后台较长久地运行.当应用被按Home键退出后,应用最后5秒钟的时间做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirationHandler
方法,让应用最多有10分钟的时间在后台长久运行.这个时间可以用来做清理本地缓存,发送统计数据等工作.
让程序在后台长久运行的示例代码如下:
//AppDelegate.h文件 后台运行
@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundUpdateTask;
// AppDelegate.m 文件
- (void)applicationDidEnterBackground:(UIApplication *)application {
// 在这里加上你需要长久运行的代码
}
//后台作业
- (void)beginBackgroundUpdateTask {
__weak typeof(self) weakSelf = self;
self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[weakSelf endBackgroundUpdateTask];
}];
}
// 结束后台作业
- (void)endBackgroundUpdateTask {
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask];
self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}
网友评论