gpt4 book ai didi

objective-c - iOS - 需要区分应用程序中的 UILocalNotification :didReceiveLocalNotification:

转载 作者:可可西里 更新时间:2023-11-01 06:11:43 24 4
gpt4 key购买 nike

所以这就是交易...我需要一种方法来区分我收到的应用程序状态 UILocalNotification .

有一种情况我不明白。也就是说,当应用程序当前在前台运行并且用户拉下通知中心(iOS 5)时,应用程序将被调用 applicationWillResignActive:这是完全合乎逻辑的,因为当通知中心显示在它上面时它不会被激活。但我怀疑也是applicationDidEnterBackground:在它退出事件后会立即被调用它没有。因此,当我在通知中心收到 UILocalNotifications 时,我的应用程序将尝试在 application:didReceiveLocalNotification: 中处理它们。但是当我点击通知中心列表中来 self 的应用程序的通知时,我的应用程序将以与我在通知中心收到通知时相同的方式处理该通知。所以我只能以一种方式处理这些通知,但我需要以两种方式处理它们。

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

  • 当应用在前台并且用户已经下拉
    通知中心和我在那段时间收到通知
    ( UIApplicationState = UIApplicationStateInactive )

  • 当应用在前台并且用户已经下拉
    通知中心并主动选择我的应用之一
    来自列表的通知 ( UIApplicationState =<br/>
    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

最佳答案

你能不能等一下,看看你的状态是否会在不久之后变得活跃?

当您在第二种情况下收到本地通知时,您的应用程序将在您收到回调后立即变为事件状态(因为用户选择返回您的应用程序)。那么,如何存储您的本地通知并在 50 毫秒后对其进行操作(比如)?如果此时您的应用程序状态为事件,则用户从通知中心选择了您的应用程序。

关于objective-c - iOS - 需要区分应用程序中的 UILocalNotification :didReceiveLocalNotification:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com