當一個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/
新聞熱點
疑難解答