当应用程序进入暂停状态时取消本地通知。(从后台删除)

Posted

技术标签:

【中文标题】当应用程序进入暂停状态时取消本地通知。(从后台删除)【英文标题】:Cancel Local Notification When app goes to Suspended state.(removed from background) 【发布时间】:2012-12-14 06:01:45 【问题描述】:

我在我的应用程序中使用本地通知。它在前台和后台运行良好。

现在,我需要什么,如果我从后台删除我的应用程序,那么我想取消所有通知 在那之前。

所以,当我要从后台删除我的应用程序时,appdelegate 中没有调用任何方法,显然它将进入 Suspended 状态,因此不会调用任何方法。

那么还有其他方法可以做到这一点吗?

提前谢谢...

【问题讨论】:

我不认为这是可能的。当应用程序从挂起状态终止时,大多数情况下不会调用应用程序委托 appWillTerminate 感谢@Shubhank,我有想法,但有没有其他方法?因为当我从后台删除它时我的应用程序会自动注销,所以我必须取消通知。 是的意思是,每次我从后台删除后打开我的应用程序,它都会询问新的用户名和密码, 您可以通过编码记住用户名和密码! 是的,我知道这是可能的,但这是违反要求的。这就是我寻找其他选项的原因。 【参考方案1】:

考虑到您的应用不是支持的后台执行模式之一,例如音频、VoIP 或导航, 您的应用程序通常不会看到 willTerminate,因为系统通常只会在您的应用程序已经暂停(在后台)后才会终止它。一旦你的应用被暂停,它就没有进一步的行动机会,所以没有回调。

didEnterBackground 委托消息或通知应被视为您在可能终止之前清理或保存状态的最后机会。

Here 和 here 很好地概述了 ios 4.0 及更高版本上的应用程序生命周期通知和委托消息。

【讨论】:

如果我设置了“updatelocation”,它会调用吗?或者这不是一个好主意,苹果会拒绝它,因为我没有在我的应用程序中使用位置。 在这种情况下,如果用户关闭了他的位置服务,那么您的应用程序将会崩溃...查看link 以获得在 BG 中运行应用程序的一些帮助

以上是关于当应用程序进入暂停状态时取消本地通知。(从后台删除)的主要内容,如果未能解决你的问题,请参考以下文章

停止本地通知

应用程序进入后台时暂停音频

远程通知的后台任务在片​​刻后暂停

iOS - 当应用程序在后台时取消蓝牙连接

当后台服务取消暂停或重新启动时,iOS 应用程序需要多长时间?

收到本地通知时无法播放音乐,当应用程序处于后台状态时