0
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

它被调用content-available = 1。下载任务开始(显示NSLogs),但它没有完成调用的任务。仅当将应用程序切换回前台时,它才会完成先前调用的任务。

任何想法......这怎么会发生?

4

1 回答 1

0

您必须使用 UIBackgroundTaskIdentifier. 在后台执行 api 调用。

       - (void)applicationDidEnterBackground:(UIApplication *)application {




        isnotificationScreenopen = NO;
        UIBackgroundTaskIdentifier bgTaskId =[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
            [[UIApplication sharedApplication] endBackgroundTask:bgTaskId];
            NSLog(@"%f",[UIApplication sharedApplication].backgroundTimeRemaining);
        }];
        NSLog(@"%f",[UIApplication sharedApplication].backgroundTimeRemaining);



}

您也可以阅读此链接

目标 c - 正确使用 beginBackgroundTaskWithExpirationHandler

于 2016-10-01T12:40:40.237 回答