美文网首页iOS开发者进阶
iOS GCD创建标准定时器,进入后台后任务可继续执行定时

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

作者: __Mr_Xie__ | 来源:发表于2021-09-03 10:01 被阅读0次

前言

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

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

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/lznhwltx.html