GCDを利用してプログラムをバックグラウンドで長く実行させる
897 ワード
GCDを使用していない場合、appがホームキーを押して終了した後、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;
}