Search code examples
iphonenotificationsipod

MPMediaLibraryDidChangeNotification called twice?


My app uses the iPodMusicPlayer and, when suspended, the user might go out and make changes in Apple's Music App, for example creating or modifying a Playlist, then return to my App.

I receive the expected MPMediaLibraryDidChangeNotification, which is fine and I deal with it updating my references etc., but I receive a second MPMediaLibraryDidChangeNotification about 2 minutes later which I really don't need.

Any ideas on avoiding this second notification?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notification_iPodLibraryDidChange:) name: MPMediaLibraryDidChangeNotification object:nil];

[[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications];

Solution

  • if( !self.lastModifiedDate )        self.lastModifiedDate = [[NSDate alloc] init];
    if( [self.lastModifiedDate compare:[[MPMediaLibrary defaultMediaLibrary] lastModifiedDate]] == NSOrderedSame )  return;
    self.lastModifiedDate = [[MPMediaLibrary defaultMediaLibrary] lastModifiedDate];
    

    The above lines in my notification handler method deal with the extra call. Still no idea why I'm getting it.