当应用程序是后台收到的远程通知不打“didReceiveRemoteNotification – fetchCompletionHandler”方法,如果应用程序被杀害?

我们已经实现了以下方法来接收远程通知,并启用了“项目function下的后台获取和远程通知”。 方法即使应用程序在前台或后台打。 但是“如果app被杀,在后台收到通知,那么下面的方法不会被调用”。 如何解决这个问题?

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { // Some storage code } 

提前感谢您的帮助!

杀间谍程序间接禁用推送通知。

这是因为如果用户杀死应用程序, 操作系统将不会重新启动,除非用户点击主屏幕上的应用程序图标。

这是不幸的,因为大多数用户不知道杀应用程序(这很有趣!)有这些恼人的副作用。

这是从苹果的“iOS应用程序编程指南” :

在大多数情况下,系统在用户强制退出后不会重新启动应用程序。 位置应用程序是一个例外,iOS 8和更高版本在用户强制退出后重新启动。 然而,在其他情况下,用户必须明确地启动应用程序或重新启动设备,然后系统才能将应用程序自动启动到后台。

当一个应用程序被杀害。 推送通知不会支持。 因为你的应用程序不再运行。 所以,没有办法接受你的推送通知。

如果应用程序不活动,则不会调用此方法。 相反,如果用户从通知中启动应用程序,应用程序将在didFinishLaunchingWithOptions中有一个有效载荷,在这里您可以处理通知。

如果应用程序没有从通知中打开,您将不会得到这个。

你到底在想什么? 您可以让应用程序请求后台时间,并根据需要执行代码。