0
votes

I am trying to run some function every n-minutes when app is not running. I thing local notification is suitable for that, but I have one problem.

If I set local notification as :

 -(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];
}

The notification is fired every time and then do:

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

What I would want is to after 15s first fire some function and if function return YES then play sound and put badge on it.

How to do that?

1

1 Answers

1
votes

If the application is foremost and visible when the system delivers the notification, no alert is shown, no icon is badged, and no sound is played. However, the application:didReceiveLocalNotification: is called if the application delegate implements it.

Make sure you are testing in device.