2016-10-01 33 views
0
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

正在调用content-available = 1。下载任务开始(显示NSLogs),但它不会完成被调用的任务。只有在将应用程序切换回Foreground时,它才能完成先前调用的任务。应用程序在后台执行任务(收到远程通知后),但未完成完成

任何想法......如何发生这种情况?

+0

澄清你的疑问句,我没有得到..? – vaibhav

+0

你的意思是你的api在后台没有响应? –

+0

当应用程序在后台并且有一个远程推送通知进来时,调用Parse“getObjectsInBackGround”任务。当应用程序处于后台时此任务未完成,但在转换为前台后继续。 – JeeGee

回答

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); 



} 

你也可以读这个链接也

objective c - Proper use of beginBackgroundTaskWithExpirationHandler

相关问题