【读书笔记】GCD-block-后台运行

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

当一个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/

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航