应用程序激活时关闭本地通知
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]
呢?这应该正是您正在寻找的。
【讨论】:
以上是关于应用程序激活时关闭本地通知的主要内容,如果未能解决你的问题,请参考以下文章