iOS GCD創建標準定時器,進入後臺後任務可繼續執行定時 前言 實現代碼

前言

要開啓標準定時器,多線程是必須的。進入後臺後定時器任務會繼續進行,無需開啓後臺任務。主要用於與定時器相關的功能,比如獲取驗證碼,定時刷新的需要標準的定時器。

首先,用的時候是沒有開啓後臺任務的,照樣可以繼續定時,可能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;
            }
        });
    });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章