按主页按钮后,UILocalNotification不显示文本

时间:2012-11-29 11:24:27

标签: iphone ios notifications uilocalnotification uiapplication

我使用此代码创建本地通知:

        UILocalNotification *notification=[[UILocalNotification alloc]init];
        notification.soundName = @"new_friend_request.mp3";
        notification.repeatInterval = 0;
        notification.alertAction = @"Go to";
        notification.userInfo = [NSDictionary dictionaryWithObject:@"actionNotification" forKey:@"actionNotification"];
        notification.alertBody = @"Body";
        [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
        [notification release];

但是在按下主页按钮后,我在iPhone的主屏幕上看不到通知警报正文。

一开始我想,通知未被调用,但后来我使用了调试并发现通知被正确调用。

所以,我不知道,为什么它不起作用。

4 个答案:

答案 0 :(得分:3)

在我看来,问题是当应用在后台时你是如何调用presentLocalNotification的。我发现如果我使用NSTimerdispatch_after来调用调用presentLocalNotification的方法,那么当应用程序在后台时,实际上不会触发,而是推迟到应用程序之后返回前台。我想知道你认为正在执行的代码presentLocalNotification是否在您认为正在运行时。

例如,在我的测试中,当我使用NSTimer替换基于scheduleLocalNotification的代码调用时,如果应用程序恰好在运行中,我会收到通知的背景。因此,请将您的行presentLocalNotification替换为:

// put all of your code configuring the UILocalNotification here
// but omit the presentLocalNotification, replacing it with the following code

// just for a test, fire the notification in 5 seconds

notification.fireDate = [[NSDate date] dateByAddingTimeInterval:5.0];
[[UIApplication sharedApplication] scheduleLocalNotification:notification];

答案 1 :(得分:1)

这是正常行为,因为您在应用运行时直接触发通知,通知会发送给游览应用代表。

由于您的应用已在运行,通知中心不会处理通知。

答案 2 :(得分:1)

您正在使用presentLocalNotificationNow方法。这将在您的应用程序运行时的当前时刻发布通知。 如果应用程序正在运行,则本地通知将不会收到警报或声音,因为它会直接由您的应用程序接收。

如果按主页按钮,则不会收到任何警报或声音。

  

<强> presentLocalNotificationNow:

     

立即提供本地通知。

     

- (void)presentLocalNotificationNow:(UILocalNotification *)notification

     

<强>参数

     

<强> notification

A local notification that the operating system presents for the application immediately, regardless of the value of the notification’s fireDate property.
     

在后台状态下运行的应用程序可以   当有来电聊天时立即出现本地通知,   消息或更新。因为操作系统是复制的   通知,您可以在安排通知后将其发布。

请参阅UIApplication class reference了解更多

答案 3 :(得分:0)

问题是我的应用程序在iphone设置中关闭了本地通知。现在我仍然使用presentLocalNotification,一切正常。

我的应用程序总是存在于后台,因为我的应用程序使用套接字。

但无论如何,抱歉浪费时间,试图帮助我的人,因为问题是由于我。