使用block的可以讓程序在后臺較長久地運行.在以前,當應(yīng)用被按Home鍵退出后,應(yīng)用僅有最多5秒鐘的時間做一些保存或清理資源的工作.但是應(yīng)用可以調(diào)用UIApplication的beginBackgroundTaskWithExpirationHandler方法,讓應(yīng)用最多有10分鐘的時間在后臺長久運行.這個時間可以用來做清理本地緩存、發(fā)送統(tǒng)計數(shù)據(jù)等工作.
讓程序在后臺長久運行的示例代碼如下:
//AppDelegate.h文件
@property (nonatomic, assign)UIBackgroundTaskIdentifier backgroundUpdateTask ;
//AppDelegate.m文件
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self beingBackgroundUpdateTask];
//這里加上你需要長久運行的代碼
NSLog(@"1");
[self endBackgroundUpdateTask];
}
- (void)beingBackgroundUpdateTask {
self.backgroundUpdateTask = [[UIApplication sharedApplication]beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundUpdateTask];
}];
}
- (void)endBackgroundUpdateTask {
[[UIApplication sharedApplication]endBackgroundTask:self.backgroundUpdateTask];
self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}