Iphone 4 sdk - 如何判断applicationWillEnterForeground是否因通知而被触发?

gjr*_*ber 2 apple-push-notifications ios4

我使用通知系统作为警报机制.如果应用程序处于关闭状态或后台,则会在收到通知时向用户发出警报.如果应用程序正在运行且位于前台,我希望显示相同的警报视图,就好像它已关闭一样.我不能让这个应用程序适用于应用程序从后台转换到前台的情况.如果转换是由于通知引起的,我最终会看到警报两次,或者如果用户点击了启动图标,我会看到一次.

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

谢谢.

gjr*_*ber 5

这个问题提供了答案.

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

UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
    // Show the alert
 }
Run Code Online (Sandbox Code Playgroud)