前言
要開啓標準定時器,多線程是必須的。進入後臺後定時器任務會繼續進行,無需開啓後臺任務。主要用於與定時器相關的功能,比如獲取驗證碼,定時刷新的需要標準的定時器。
首先,用的時候是沒有開啓後臺任務的,照樣可以繼續定時,可能iOS
系統及相關API
更新,先無法繼續定時。還得在退出前臺(或者進入後臺)的回調開啓後臺任務。
實現代碼
UIApplication* app = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier bgTask;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
});