【发布时间】:2012-10-14 11:56:46
【问题描述】:
这就是交易...我需要一种方法来区分我收到UILocalNotification 的应用程序状态。
对我来说,有一种情况我不明白。那就是当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被称为applicationWillResignActive:,这是完全合乎逻辑的,因为当通知中心显示在上面时它不会处于活动状态它。但我怀疑applicationDidEnterBackground: 也会在它退出活动后立即被调用但它没有。因此,当我在通知中心收到 UILocalNotifications 时,我的应用程序将尝试在application:didReceiveLocalNotification: 中处理它们,但是当我点击通知中心列表中我的应用程序的通知时,我的应用程序将以相同的方式处理此通知就像我在通知中心收到它时那样。所以我只能以一种方式处理这些通知,但我需要以两种方式处理它们。
那么我该如何区分这两种情况:
当应用程序处于前台并且用户已拉下 通知中心和我在此期间收到通知
(UIApplicationState = UIApplicationStateInactive)当应用程序处于前台并且用户已拉下 通知中心并主动选择我的应用程序之一
来自列表的通知 (UIApplicationState =)
UIApplicationStateInactive
编辑:
我使用 00 秒的时间戳存储我的所有通知。所以在application:didReceiveLocalNotification: 里面我可以检查当前时间[NSDate date] 看看秒是否大于00?这意味着触发通知的不是 iOS,而是通知中心的用户。这当然取决于通知实际上将由 iOS 以这种及时的方式传递的事实。如果 iOS 将在 01 秒发送通知,我的逻辑就会中断。但是为了它,我只是做了一些日志记录,以查看 iOS 何时发送我的通知,并且似乎从控制台的输出判断,通知实际上是以毫秒精度 (+/- 1) 准时发送的。当然,您无法将连接到计算机的开发设备与现实世界的场景进行比较。
2012-07-08 10:09:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:10:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:11:00.788 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:12:00.790 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:13:00.790 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:14:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
2012-07-08 10:15:00.789 App[7535:707] -[AppDelegate application:didReceiveLocalNotification:] [Line 399] application:didReceiveLocalNotification: method running
【问题讨论】:
标签: objective-c ios cocoa-touch uilocalnotification