解雇一系列 UILocalNotifications 或替代方法来实现相同的功能
Posted
技术标签:
【中文标题】解雇一系列 UILocalNotifications 或替代方法来实现相同的功能【英文标题】:Dismiss a series of UILocalNotifications or an alternative approach to achieve the same functionality 【发布时间】:2011-02-01 22:06:58 【问题描述】:我正在构建一个可用于进行间歇训练的小应用程序,
它安排了一系列UILocalNotifications
,都安排在同一个
时间和所有在几分钟内发射。
这个想法是你戴上耳机开始锻炼, 当您听到一种声音时,您会休息,而另一种声音 听起来你锻炼。我使用本地通知来执行此操作,它有效 正好。这样做的原因不仅仅是 让应用程序使用计时器运行是我想要的 Nike +iPod 应用程序同时在前台运行。
通知只是一个警报和一个确定按钮:
[notif setHasAction:NO];
所以想法是:戴上耳机,启动我的应用程序,它会安排一系列通知 - 然后开始 Nike +iPod 锻炼。当您听到通知声音时,从休息改为锻炼,反之亦然。
好的,当锻炼结束时,屏幕上有 15 个以上的通知,需要手动关闭它们,这有点烦人,而且一点也不友好。
我现在的问题是,是否有办法只发布声音通知?或确保在弹出新通知时删除较早的通知,或者是否有不同/更好的方法来实现在应用程序处于后台时获取“声音指示器”的功能?
希望有人可以提供一些经验或替代方案的好主意:) 提前致谢。
【问题讨论】:
【参考方案1】:我无法确认这实际效果如何,但如果您在创建 UILocalNotification 对象时将 alertBody 属性设置为 nil(这是默认值),它应该会阻止当您触发它们时,屏幕上会出现警报。
此外,您可能还希望将 hasAction 属性设置为 NO,以防止用户看到操作按钮(如果您有警报)或滑块(如果他们有设备已锁定)。
但至于实际堆叠的通知警报 - 我不相信有任何方法可以防止它们堆叠。这可能是值得关注的事情,因此 Apple 可以考虑在未来的 ios 版本中允许这种情况发生。
【讨论】:
这是一个超级简单的解决方案,将 alertBody 设置为 nil :) 我从没想过这会奏效 - 但它确实如此,非常完美!我知道 Apple 不鼓励这样做,因为不鼓励没有任何视觉表示的警报声音,但没关系,我只需要它来进行自己的锻炼,而不是在 App Store 中发布:) 谢谢。以上是关于解雇一系列 UILocalNotifications 或替代方法来实现相同的功能的主要内容,如果未能解决你的问题,请参考以下文章
UILocalNotification 声音每隔一段时间播放一次
具有重复一次行为的 UILocalNotification,如 Messages App
每天在同一时间安排一次 UILocalNotification
有没有一种简单的方法来编辑/修改 UILocalNotification