2

我有这个代码来安排一个UILocalNotification

UILocalNotification* localNotification = [[UILocalNotification alloc] init];
localNotification.userInfo = @{PLANNED_EVENT_ID : @"some id"};
localNotification.fireDate = someStartDate;
localNotification.alertBody = @"Some text";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.soundName = UILocalNotificationDefaultSoundName;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

当我在应用程序处于前台时设置上述内容时,此方法按预期工作,但是如果我在应用程序处于后台(按下主页按钮)时使用此代码,那么它根本不会被触发?

为什么这行不通?我怎样才能得到我需要的结果?当应用程序在后台时,我需要能够使用此代码。

谢谢!

更清楚地说,在我的AppDelegate我有方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)

当我在此方法中收到第一个通知时(有效,它被安排在视图控制器中),我以相同的方式安排另一个通知(从现在开始 1 分钟)。所以我尝试将应用程序放在前台,然后它可以工作,但是当我将它放在后台时,它没有。

虽然在模拟器上测试过。

4

1 回答 1

1

方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)

在向用户显示本地通知并且用户已从通知中打开应用程序后打开应用程序时调用。如果用户没有从通知中打开应用程序,则不会调用此方法。因此,您的下一个通知永远不会真正添加。

于 2013-10-15T21:38:19.747 回答