应用程序激活时关闭本地通知

Posted

技术标签:

【中文标题】应用程序激活时关闭本地通知【英文标题】:Dismiss local notifications when application becomes active 【发布时间】:2011-10-20 20:42:33 【问题描述】:

我正在开发一个 IM 应用程序,当应用程序在后台运行时,它会保持连接打开一段时间,并使用本地通知来提醒用户新的传入消息。

以前,在 ios 4 上,-[UIApplication cancelAllLocalNotifications] 在使用 -[UIApplication presentLocalNotificationNow:] 呈现新的本地通知之前被调用。这样,屏幕上始终只显示最新的通知。

自从 iOS 5 引入了通知中心,这个解决方案不再被接受,因为我们希望在那里显示更多的最后一条消息。但我们也想在应用程序激活时关闭所有本地通知警报。我怎样才能更好地做到这一点?我想我应该在某个时候打电话给-[UIApplication cancelAllLocalNotifications],但我不确定在哪里。我们将不胜感激。

【问题讨论】:

【参考方案1】:

尝试在您的应用委托的apllicationWillEnterForeground 方法中调用-[UIApplication cancelAllLocalNotifications]

查看更多信息here。

【讨论】:

我尝试从apllicationWillEnterForeground:applicationDidBecomeActive: 方法调用-[UIApplication cancelAllLocalNotifications],但它没有得到我想要的结果。当应用程序接收到多条传入消息并显示本地通知警报(不是横幅)时,这些警报会相互叠加。当我从最新的警报启动应用程序时,以前的警报仍会在短时间内或永远可见。我想关闭以前的警报,以便用户看不到它们。【参考方案2】:

为什么不在你的 applicationdelegates - (void)applicationDidBecomeActive:(UIApplication *)application 方法中调用 -[UIApplication cancelAllLocalNotifications] 呢?这应该正是您正在寻找的。

【讨论】:

以上是关于应用程序激活时关闭本地通知的主要内容,如果未能解决你的问题,请参考以下文章

应用程序关闭时的本地通知处理

iOS10应用关闭时如何响应本地通知?

用户关闭应用时取消所有本地通知

应用程序关闭时,离子 2 本地通知不起作用

用户关闭应用程序时如何处理用户在 Xamarin iOS 上单击本地通知?

应用程序关闭时如何发送本地通知(swift)?