1. 程式人生 > >iOS通過後臺標識使程式在後臺長久執行

iOS通過後臺標識使程式在後臺長久執行

正常情況下,當應用被按Home鍵退出後,應用僅有最多5秒鐘的時間做一些儲存或者清理資源的工作。但是應用可以呼叫UIApplication的beginBackgroundTaskWithExpirationHandler方法,讓應用在後臺長久的執行。

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

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, assign) UIBackgroundTaskIdentifier backgroundTask;//後臺任務識別符號
@end @implementation AppDelegate - (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"已經進入後臺"); [self beginBackgroundTask]; //需要執行的程式碼 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog
(@"我還在哦"); [self endBackgroundTask]; }); } - (void)beginBackgroundTask { self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ //如果系統覺得我們還是運行了太久,將執行這個程式塊,並停止執行應用程式 [self endBackgroundTask]; }]; } - (void)endBackgroundTask { //告訴系統我們完成了
[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; } @end

如果不使用後臺標識的話,GCD中的log不會列印。