【发布时间】:2014-07-22 14:26:41
【问题描述】:
我目前正在构建一个应用程序,该应用程序利用 iOS 7 的静默推送通知来根据请求在后台唤醒应用程序。
正如我在-applicationDidEnterBackground: 中所做的那样,我在-application:didReceiveRemoteNotification: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:didReceiveRemoteNotification:fetchCompletionHandler:,但应用程序在返回挂起状态之前仅在后台停留几秒钟,比给定的预期执行时间短得多(在-applicationDidEnterBackground: 中调用时) ) 我相信大约需要 3 分钟。
这是预期的行为吗?还是不能使用远程通知?
【问题讨论】:
-
我相信这可能与这篇文章中描述的问题相同:stackoverflow.com/questions/24889335/…
-
您的问题是如何解决的?
标签: ios ios7 apple-push-notifications multitasking backgrounding