Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS 7上接收远程通知(静默推送)时执行后台任务_Ios_Ios7_Apple Push Notifications_Multitasking_Backgrounding - Fatal编程技术网

在iOS 7上接收远程通知(静默推送)时执行后台任务

在iOS 7上接收远程通知(静默推送)时执行后台任务,ios,ios7,apple-push-notifications,multitasking,backgrounding,Ios,Ios7,Apple Push Notifications,Multitasking,Backgrounding,我目前正在构建一个应用程序,它利用iOS 7的静默推送通知,根据请求在后台唤醒应用程序 正如我在-applicationidentinterbackground:中所做的那样,我在-application:didReceiveMemotentification:fetchCompletionHandler:中启动了一个后台任务,如下所示: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(

我目前正在构建一个应用程序,它利用iOS 7的静默推送通知,根据请求在后台唤醒应用程序

正如我在
-applicationidentinterbackground:
中所做的那样,我在
-application:didReceiveMemotentification:fetchCompletionHandler:
中启动了一个后台任务,如下所示:

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

{

    self.taskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

        [[UIApplication sharedApplication] endBackgroundTask:self.taskId];

        self.taskId = UIBackgroundTaskInvalid;



        completionHandler(UIBackgroundFetchResultNewData);

    }];

}
虽然应用程序成功注册远程通知,并在通知到达时调用
-application:didReceiveMemotentification:fetchCompletionHandler:
,但应用程序在返回到挂起状态之前仅在后台停留几秒钟,远短于给定的预期执行时间(在
-applicationIdentinterbackground:
中调用时)我相信大约需要3分钟


这是预期的行为吗?还是不可能使用远程通知?

您是否正确配置了plist

  • 您需要告诉iOS您是一个远程通知应用程序,并且在挂起时请求额外的周期
  • ui背景模式
    有待批准
  • 从:

    应用程序的后台模式
    ui背景模式
    value=
    远程通知


    应用程序希望在推送通知到达时开始下载内容。使用此通知可最大限度地减少显示推送通知相关内容的延迟。

    我相信这可能与本文中描述的问题相同:您是如何解决问题的?