2016-10-01 32 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

相關問題