美文网首页
iOS-后台倒计时

iOS-后台倒计时

作者: ShanJiJi | 来源:发表于2018-04-11 09:47 被阅读34次
    
    - (void)openCountdown {
        
        // 判断用户有没有登录
        if ([OJPNSUserDefaultsTools isLogin]) {
            // 如果登录了则一直更新坐标
            [OJPNSUserDefaultsTools setIsUpdateLocation:YES];
        }
        else {
            // 没有登录则不更新
            [OJPNSUserDefaultsTools setIsUpdateLocation:NO];
        }
        
    //    NSLog(@"Location_啦啦啦啦--开始更新用户位置了.....");
        
        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
        dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0 * NSEC_PER_SEC, 0);
        // 每秒执行一次 总时长10分钟
        NSTimeInterval seconds = 10*60.f; //10*60.f;//20;
        NSDate *endTime = [NSDate dateWithTimeIntervalSinceNow:seconds];
        // 最后期限
        dispatch_source_set_event_handler(_timer, ^{
            int interval = [endTime timeIntervalSinceNow];
            if (interval > 0) {
                // 更新倒计时
                NSString *timeStr = [NSString stringWithFormat:@"%d秒", interval];
                dispatch_async(dispatch_get_main_queue(), ^{
    //                NSLog(@"Location_距离下次更新用户位置时间还剩%@",timeStr);
                });
            }
            else {
                // 倒计时结束,关闭
                dispatch_source_cancel(_timer);
                dispatch_async(dispatch_get_main_queue(), ^{
                    // 重复执行 如果当前在更新用户位置信息,则重复执行
                    if ([OJPNSUserDefaultsTools getIsUpdateLocation]) {
                        [OJPNSUserDefaultsTools setIsUpdateLocation:NO];
                        OJPMainTabBarController *mainTabBar = [OJPMainTabBarController shareViewController];
                        UINavigationController *oneNav = mainTabBar.childViewControllers[0];
                        OJPNewHomeMapViewController *oneHome = oneNav.viewControllers[0];
                        [oneHome configLocationManagerRequestUnderway:NO];
                    }
                });
            }
        });
        dispatch_resume(_timer);
    }
    
    

    相关文章

      网友评论

          本文标题:iOS-后台倒计时

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