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

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

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

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

【问题讨论】:

    标签: iphone objective-c ios uilocalnotification


    【解决方案1】:

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

    查看更多信息here

    【讨论】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多