美文网首页将来跳槽用
iOS - 每隔一段时间,反复执行同一个任务

iOS - 每隔一段时间,反复执行同一个任务

作者: FANTASIED | 来源:发表于2017-03-15 14:20 被阅读4125次

    我们有时候会有这样的需求,当程序处于运行状态,每隔几秒给服务器发送一次请求。
    这时我们可以这样处理:

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    
    // 可以用该语句查看当前线程
    NSLog(@"当前线程--%@", [NSThread currentThread]);    
    
    // 此处需要写一个异步任务,是因为需要开辟一个新的线程去反复执行你的代码块,否则会阻塞主线程
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
    
            while (TRUE) {
    
                // 每隔5秒执行一次(当前线程阻塞5秒)
                [NSThread sleepForTimeInterval:5];  
                
                [[UIApplication sharedApplication] cancelAllLocalNotifications];
               
                // 这里写你要反复处理的代码,如网络请求
                NSLog(@"***每5秒输出一次这段文字***");            
    
                [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
            };
        });
    

    相关文章

      网友评论

        本文标题:iOS - 每隔一段时间,反复执行同一个任务

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