1. 程式人生 > >GCD 保持iOS app後臺長時間執行

GCD 保持iOS app後臺長時間執行

GCD的另一個用處是可以讓程式在後臺較長久的執行。

在沒有使用GCD時,當app被按home鍵退出後,app僅有最多5秒鐘的時候做一些儲存或清理資源的工作。但是在使用GCD後,app最多有10分鐘的時間在後臺長久執行。這個時間可以用來做清理本地快取,傳送統計資料等工作。

讓程式在後臺長久執行的示例程式碼如下:

// AppDelegate.h檔案
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;

// AppDelegate.m檔案
- (void)applicationDidEnterBackground:(UIApplication
*)application { [self beingBackgroundUpdateTask]; // 在這裡加上你需要長久執行的程式碼 [self endBackgroundUpdateTask]; } - (void)beingBackgroundUpdateTask { self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [self endBackgroundUpdateTask]; }]; } - (void
)endBackgroundUpdateTask { [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid; }