【发布时间】:2011-04-07 23:09:19
【问题描述】:
我正在开发一个 iPhone 应用程序,该应用程序需要使用 UILocalNotifications 提醒用户定期签到。如果他们几个小时没有签到,他们可能会被提醒几次,但我只想显示最新的通知。
现在,如果应用程序打开,我会收到一个回调到 didReceiveLocalNotification:(UILocalNotification *) 通知,我可以跟踪是否有通知显示。
如果应用程序没有运行并且用户点击-action-按钮,我会收到一个回调
- (BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
这样我就可以关闭任何旧通知。但是,如果他们单击“取消”,则必须在一堆分层通知上单击“取消”,因为据我所知,我没有收到回调(如果应用程序未启动,我怎么能)并且在创建 UILocalNotification 以使来自应用程序的更新提醒自动关闭其他提醒时,似乎没有标志或其他东西。
如果应用程序在后台但正在运行,情况会更糟 - 首先,如果用户点击取消,我不会在那里收到任何类型的回调,所以我有同样的问题 - 用户必须点击取消一堆次。其次,如果他们单击该操作,我会调用 ApplicationDidBecomeActive,但是这与用户只是来回切换没有区别;我可以在这里解散并重新安排它们,但它似乎并不完美,有时会在它们被解散之前弹出一些。
有什么建议吗?如果有办法让通知自动过期,那就太好了。我在网上查了一下,并没有找到太多帮助,但这似乎是一个很大的疏忽,所以希望有一些方法可以优雅地处理这个问题。
谢谢。
【问题讨论】:
标签: iphone uialertview uilocalnotification reminders