运维开发网

objective-C语言 iOS – 需要区分应用程序中的UILocalNotification:didReceiveLocalNotification:

运维开发网 https://www.qedev.com 2020-03-19 12:46 出处:网络 作者:运维开发网整理
所以这是交易…我需要一种方法来区分我收到UILocalNotification的应用程序状态. 有一种情况对我来说我不明白.也就是说,当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被称为applicationWillResignActive:这是完全合乎逻辑的,因为当通知中心将显示在它上面时它将不会处于活动状态.但是我怀疑applicationDidEnterBackgr
所以这是交易…我需要一种方法来区分我收到UILocalNotification的应用程序状态.

有一种情况对我来说我不明白.也就是说,当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被称为applicationWillResignActive:这是完全合乎逻辑的,因为当通知中心将显示在它上面时它将不会处于活动状态.但是我怀疑applicationDidEnterBackground:在它已经重新激活后会被调用,但它没有.因此,当我在通知中心收到UILocalNotifications时,我的应用程序会尝试在应用程序中处理它们:didReceiveLocalNotification:但是当我点击通知中心列表中我的应用程序的通知时,我的应用程序将同样处理此通知我在通知中心收到它的方式.所以我只能用一种方式处理这些通知,但我需要以两种方式处理它们.

那么我如何区分这两种情况:

>当应用程序在前台并且用户已拉下时

通知中心和我在此期间收到通知

(UIApplicationState = UIApplicationStateInactive)

>当应用程序在前台并且用户已拉下时

通知中心并积极选择我的应用程序之一

来自列表的通知(UIApplicationState =

UIApplicationStateInactive)

编辑:

我将所有通知存储时间戳为00秒.所以内部应用程序:didReceiveLocalNotification:我可以查看当前时间[NSDate日期]并查看秒数是否大于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
你可以等一下,看看你的州后来不久就活跃了吗?

当您在第二种情况下收到本地通知时,您的应用将在您收到回叫后立即变为活动状态(因为用户选择返回您的应用).那么,如何存储本地通知并在50分钟后对其进行操作(比如说);如果您的应用程序状态在此时处于活动状态,则用户从通知中心选择您的应用程序.

0

精彩评论

暂无评论...
验证码 换一张
取 消