application:didReceiveRemoteNotification:fetchCompletionHandler:在系统终止应用程序后未调用

时间:2017-02-27 11:53:54

标签: ios swift push-notification remote-notifications background-mode

我已经实现了application:didReceiveRemoteNotification:fetchCompletionHandler:,这是在收到推送通知后运行所必需的。我也打开了" Background Fetch"和#34;远程通知"背景模式。我的推送通知包括content-available标记,设置为1

如果我的应用程序处于Active,Background或Suspended状态,则会正确调用此函数,并且应用程序会暂时进入Inactive状态。但是,如果我的应用程序由于内存不足问题(即自启动我的应用程序以来用户已经打开了许多其他应用程序,这是一个相当常见的事件)而被从Suspended状态清除,它将进入Not Running状态。此时,它不会调用didReceiveRemoteNotifications函数。

The documentation for this function州:

  

如果您启用了远程通知后台模式,系统会启动您的应用(或将其从暂停状态唤醒),并在远程通知到达时将其置于后台状态。但是,如果用户强行退出,系统不会自动启动您的应用。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会再次尝试自动启动您的应用。

用户强制退出应用程序的情况,因此应用程序不会调用此功能。但我所看到的是,如果系统以相当常见的原因终止应用程序,那么这个功能就不会被调用。

我还尝试实现已弃用的application:didReceiveRemoteNotification:函数,以查看当应用处于“未运行”状态时是否会调用该函数。它没有。

0 个答案:

没有答案