加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – iOS – 需要区分应用程序中的UILocalNotificatio

发布时间:2020-12-16 07:00:38 所属栏目:百科 来源:网络整理
导读:所以这是交易…我需要一种方法来区分我收到UILocalNotification的应用程序状态. 有一种情况对我来说我不明白.也就是说,当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被称为applicationWillResignActive:这是完全合乎逻辑的,因为当通知
所以这是交易…我需要一种方法来区分我收到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分钟后对其进行操作(比如说);如果您的应用程序状态在此时处于活动状态,则用户从通知中心选择您的应用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读