【发布时间】:2014-01-01 09:08:53
【问题描述】:
我在我的应用程序委托中实现了application:didReceiveRemoteNotification:fetchCompletionHandler: 来响应推送通知。
当应用程序在后台接收到通知时,会立即调用此方法,我会获取新数据并在完成后执行完成块。一切都按照文档。但是,如果我点击通知警报,则会再次调用此方法,从而导致另一个网络调用和 UI 更新。我本来希望每次推送通知都会调用一次此方法,而不是在收到时调用一次,然后在操作时调用一次。
其他人是如何实现这种方法的?
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
[self loadSomeResource:^(NSData *data,NSError *error){
if (error) {
completionHandler(UIBackgroundFetchResultFailed);
}
else if (data){
completionHandler(UIBackgroundFetchResultNewData);
}
else {
completionHandler(UIBackgroundFetchResultNoData);
}
}];
}
【问题讨论】:
-
在您的方法中检查应用是否处于活动状态?
-
如果我这样做了,我应该在第二次调用 completionHandler 时传递什么?
-
你能把你的代码贴出来吗?
标签: ios objective-c ios7 push-notification