How to delete all local notifications when an application is deleted from an iPhone

Nimit Parekh picture Nimit Parekh · Feb 14, 2012 · Viewed 20.7k times · Source

Let's say I set 5 local notification for an iPhone application, then the user deletes the app. If the app is installed again, it shows the previous notifications.

I know the following code deletes all notifications

[[UIApplication sharedApplication] cancelAllLocalNotifications];

But where do I put that code so that it executes when the application is deleted?

Or any other way to solve this problem.

Answer

Derek Hewitt picture Derek Hewitt · Oct 25, 2013

As others have mentioned, I think the best way to accomplish this is to have a flag in didFinishLaunchingWithOptions in the application delegate that checks if it is the first launch or not.

If the app is being launched for the first time, you can call

[[UIApplication sharedApplication] cancelAllLocalNotifications];

This will cancel any existing notifications.

For example:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    // this flag will need to be stored somewhere non-volatile such as using CoreData 
    // or user defaults
    if(flag == nil || [flag count] ==0){ 

       [[UIApplication sharedApplication] cancelAllLocalNotifications];

       // update your flag so that it fails this check on any subsequent launches
       flag = 1;
    }
{