美文网首页
进入后台网络请求无法回调

进入后台网络请求无法回调

作者: tom__zhu | 来源:发表于2021-03-10 23:22 被阅读0次

    APP设置了backgroundMode,但是进入后台以后,在 -applicationDidEnterBackground:中发出的网络请求概率性无法进入成功或是失败回调。
    从AFN issue里翻到一个解决方案,经过验证有效,但因为取法理论依据无法保证多机型多系统版本兼容。

    -(void) performFetch {
    
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSString *urlstr = @"http://wiki.XX.domain/rest/likes/1.0/content/80524087/likes";
            XXGetURLRequest *request = [[XXGetURLRequest alloc] initWithURL:urlstr];
            XXURLSessionDataTask *task = [XXHTTPSessionManager dataTaskWithGetRequest:request];
            [task startRequestWithSuccess:^(XXURLResponse *response) {
                id json = [response.data toJSON];
                NSLog(@"💫background success: %@", json);
            } failure:^(XXURLResponse *response) {
                NSLog(@"💫background failure: %@", response.error.description);
            }];
        });
    
    }
    

    Starting the fetch as background task with 0.1 sec delay seems to work to avoid the problem:

    相关文章

      网友评论

          本文标题:进入后台网络请求无法回调

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