iOS开发者进阶

iOS GCD创建标准定时器,进入后台后任务可继续执行定时

2021-09-03  本文已影响0人  __Mr_Xie__

前言

要开启标准定时器,多线程是必须的。进入后台后定时器任务会继续进行,无需开启后台任务。主要用于与定时器相关的功能,比如获取验证码,定时刷新的需要标准的定时器。

首先,用的时候是没有开启后台任务的,照样可以继续定时,可能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;
            }
        });
    });
上一篇 下一篇

猜你喜欢

热点阅读