首页 > 代码库 > 【读书笔记】iOS-GCD-block-后台执行
【读书笔记】iOS-GCD-block-后台执行
当一个app按home键退出的时候。仅仅有最多5秒的时间做一些保存或清理资源的工作。
可是调用beginBackgroundTaskWithExpirationHandler方法,能够最多有10分时间在后台执行。我们能够用这个时间来做清理本地缓存,发送统计数据等事情。
AppDelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
//后台长久执行
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;
@end
AppDelegate.m
//当app进入后台的时候
- (void)applicationDidEnterBackground:(UIApplication *)application {
[self beingBackgroundUpdateTask];
//须要长久执行的代码
[self endBackgroundUpdateTask];
}
#pragma -mark -functions
- (void)beingBackgroundUpdateTask
{
self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[self endBackgroundUpdateTask];
}];
}
- (void)endBackgroundUpdateTask
{
[[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask];
self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}
參考资料:
http://www.devtang.com/blog/2012/02/22/use-gcd/
【读书笔记】iOS-GCD-block-后台执行
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。