NSTimer inside global queue is not called when the

2019-09-14 18:25发布

I want to run a selector using NSTimer which contains some network calls and some other tasks. I want to do that on global queue.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSTimer * myTimer=[[NSTimer alloc]init];
        myTimer = [NSTimer timerWithTimeInterval:10*60 target:self selector:@selector(syncGroupAutomatically) userInfo:nil repeats:YES];
        [[NSRunLoop currentRunLoop] addTimer:myTimer forMode:NSRunLoopCommonModes];
        [[NSRunLoop currentRunLoop] run];
    });

-(void)syncGroupAutomatically
{
    NSLog(@"Some Network calls and some other things\n");
}

If I run this code, it works fine when app is in foreground, but as soon as I press the home button it stops calling the syncGroupAutomatically method.

If anybody having any idea how to run this NSTimer even when app is in the background. Please help me.

标签: ios nstimer
0条回答
登录 后发表回答