Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

local notification "didReceiveLocalNotification" calls twice

I am handling local notifications using:

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

And to schedule a local notification:

- (void)scheduleNotificationWithInterval:(int)minutesBefore {
    UILocalNotification *localNotif = [[UILocalNotification alloc] init];

    if (localNotif == nil)
        return;

    NSDate *fireDate = [NSDate date];
    localNotif.fireDate = [fireDate dateByAddingTimeInterval:minutesBefore*60];
    localNotif.timeZone = [NSTimeZone defaultTimeZone];
    localNotif.repeatInterval = kCFCalendarUnitMinute;
    localNotif.alertBody = [NSString stringWithFormat:NSLocalizedString(@"LocalEvent notification in %i minutes.", nil),minutesBefore];
    localNotif.alertAction = NSLocalizedString(@"View Details", nil);
    localNotif.applicationIconBadgeNumber = 1;

    NSDictionary *infoDict = [NSDictionary dictionaryWithObjectsAndKeys:@"This is dict, you can pass info for your notification",@"info",nil];
    localNotif.userInfo = infoDict;

    [[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

    [localNotif release];
    NSLog(@"Event scheduled");
}

When I receive a notification, didReceiveLocalNotification: is called twice.

Am I doing something wrong?

Please help.

Thanks.

like image 393
Niraj Avatar asked Jul 12 '10 09:07

Niraj


2 Answers

I think there is a known bug in the simulator, that fires the delegate notification method twice. It should not happen on the device, tethered to XCode or not.

like image 75
jmdecombe Avatar answered Oct 05 '22 19:10

jmdecombe


i was also facing the same problem and the solution which i find is that write this code in didReceiveLocalNotification

if (state == UIApplicationStateActive) {
    NSLog(@"UIApplicationStateActive"); 
}
else if(state == UIApplicationStateInactive){
    NSLog(@"UIApplicationStateInActive");
}

here in these condition i just write the code which i want my application to do on notification , in Active mode and in inactive mode

like image 25
Muhammad Saqib Avatar answered Oct 05 '22 21:10

Muhammad Saqib