Iphone 4 sdk - 如何确定 applicationWillEnterForeground 是不是因通知而被触发?

Posted

技术标签:

【中文标题】Iphone 4 sdk - 如何确定 applicationWillEnterForeground 是不是因通知而被触发?【英文标题】:Iphone 4 sdk - How can I find out if applicationWillEnterForeground was triggered due to a notification?Iphone 4 sdk - 如何确定 applicationWillEnterForeground 是否因通知而被触发? 【发布时间】:2010-08-16 23:17:41 【问题描述】:

我将通知系统用作警报机制。如果应用程序关闭或在后台,当通知进入时,iphone 会提醒用户。如果应用程序正在运行并且在前台,我想显示与关闭时相同的警报视图。我无法让它适用于应用程序从后台转换到前台的情况。如果转换是由于通知引起的,或者如果用户单击启动图标,我最终会看到两次警报。

有没有办法知道转换是否是由于用户点击启动图标的通知?

谢谢。

【问题讨论】:

【参考方案1】:

This question provides the answer。

具体来说,在 didReceiveRemoteNotification 方法中,您可以检查应用程序的状态。 UIApplicationStateActive 表示它在前台,因此您需要显示警报。否则 Iphone 将处理警报:

UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) 
    // Show the alert
 

【讨论】:

以上是关于Iphone 4 sdk - 如何确定 applicationWillEnterForeground 是不是因通知而被触发?的主要内容,如果未能解决你的问题,请参考以下文章

如何提交在 iPhone OS 3 和 iPhone SDK 4 上运行的应用程序版本?

如何提交在iPhone OS 3和iPhone SDK 4上运行的应用程序版本?

如何使用 iPhone SDK 4.0 实现警报

使用iPhone SDK确定设备(iPhoneiPod Touch)

iphone sdk:如何正确切换控制器

Xcode 无法获取进程 XXX 的任务。我该如何解决这个问题? (iPhone SDK 4.0)