当应用程序在后台和本地通知触发时执行代码

时间:2018-05-15 20:58:11

标签: ios swift notifications background

这是一个非常棘手的情况:我正在迅速编写一个警报应用程序。在发出警报时,应用程序很可能处于后台或被杀死,甚至更糟糕的是iPhone被锁定。一旦发出警报,应用程序应在后台自动设置另一个通知。只有当应用程序位于前台时,我才能在AppDelegate中执行此操作,但在后台,我只能设置具有良好附件和声音的通知,但不会执行任何代码。在使用锁定设备的后台收到本地通知后,我无法调用方法。 非常感谢帮助。我不确定是否有解决方案。非常感谢你。

1 个答案:

答案 0 :(得分:2)

阅读didReceiveRemoteNotification它表示如果您的应用在前台或后台运行,则会调用此方法。

您可能会觉得有用的是

  

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

所以,我认为你不能解决已杀死的场景。但是启用后台模式后,您至少可以将应用程序从暂停模式中唤醒。

阅读Apple的Background Execution文章,尤其是了解您的应用程序何时启动到后台部分。它说背景执行的时间是

  

推送通知到达应用程序,通知的有效内容包含值为1的内容可用密钥。

你可以在这里做一些或大部分你想做的事。