0

当应用程序未运行时,我试图每 n 分钟运行一次功能。我认为本地通知适合于此,但我有一个问题。

如果我将本地通知设置为:

 -(void)notification{
     UILocalNotification *localNotif = [[UILocalNotification alloc] init];
     if (localNotif == nil)
         return;
     localNotif.fireDate = [[NSDate date] dateByAddingTimeInterval:15];
     //localNotif.timeZone = [NSTimeZone defaultTimeZone];

 // Notification details
     localNotif.alertBody = @"marko";
 // Set the action button
     localNotif.alertAction = @"View";

     localNotif.soundName = UILocalNotificationDefaultSoundName;
     localNotif.applicationIconBadgeNumber = 1;

 // Specify custom data for the notification
     NSDictionary *infoDict = [NSDictionary dictionaryWithObject:@"someValue" forKey:@"someKey"];
     localNotif.userInfo = infoDict;

// Schedule the notification
   [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
}

每次都会触发通知,然后执行以下操作:

 - (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif {
NSLog(@"Recieved Notification %@",notif);
 }

我想要的是在 15 秒后首先触发一些函数,如果函数返回 YES,然后播放声音并在上面放上徽章。

怎么做?

4

1 回答 1

1

如果在系统传递通知时应用程序处于最前面且可见,则不会显示警报,不会标记图标,也不会播放声音。但是,如果应用程序委托实现了 application:didReceiveLocalNotification: ,则会调用它。

确保您正在设备中进行测试。

于 2013-05-10T11:02:46.963 回答