ios – 远程通知方法调用两次

ios – 远程通知方法调用两次,第1张

概述我已经实现了应用程序:didReceiveRemoteNotification:fetchCompletionHandler:在我的应用程序委托中来响应推送通知. 当应用程序处于后台时收到通知时,立即调用此方法,并在完成后获取新数据并执行完成块.所有文件.但是,如果我点击通知警报,此方法再次被调用,导致另一个网络调用和UI更新.我会期望这种方法每次推送通知一次,而不是一次收到并再次执行. 其他人如 我已经实现了应用程序: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);        }    }];}
解决方法 以下是应用程序中要注意的事项:dIDReceiveRemoteNotification:fetchCompletionHandler:方法,当您收到推送通知:1.当应用程序未启动时(即应用程序既不在后台也不在前台),该方法被调用一次,applicationState将是UIApplicationStateInactive.2.当应用程序在前台时,applicationState将是UIApplicationStateActive.3.当应用程序在后台时,该方法被调用两次,一旦收到推送通知,以及其他时间点击该通知.当您收到推送通知时,applicationState将是UIApplicationStateBackground,当您点击该通知时,applicationState将为UIApplicationStateInactive.当applicationState将为UIApplicationStateBackground时,我们可以忽略它,因此我们可以为所有三种情况处理一次推送通知.
- (voID)application:(UIApplication *)application dIDReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(voID (^)(UIBackgroundFetchResult))completionHandler{    if (application.applicationState == UIApplicationStateBackground) {        completionHandler(UIBackgroundFetchResultNoData);        return;    }    // Do whatever you need here and call completionHandler with appropriate UIBackgroundFetchResult}
总结

以上是内存溢出为你收集整理的ios – 远程通知方法调用两次全部内容,希望文章能够帮你解决ios – 远程通知方法调用两次所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1096155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存