Credo che ho avuto un problema simile.Quando l'app è entrata in primo piano, ho tentato di cancellare le notifiche precedenti per rimuovere eventuali notifiche precedenti dalla barra delle notifiche.
ho fatto qualcosa di simile per afferrare vecchie notifiche e rimuoverli:
NSArray *activeNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
NSArray *pastNotifications = [activeNotifications filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"firDate < %@", [NSDate date]]];
for (UILocalNotification *notification in pastNotifications) {
[[UIApplication sharedApplication] cancelLocalNotification:notification];
}
Tuttavia, sembra che scheduledLocalNotifications
non include posizioni la cui data di fuoco è già passato, anche se appaiono ancora nel centro di notifica.
La chiamata cancelAllLocalNotifications
sembra rimuovere anche le notifiche passate. Quindi possiamo prendere tutte le notifiche correnti, cancellare tutto e quindi aggiungere quelle a cui siamo ancora interessati.
// Grab all the current notifications
NSArray *activeNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
// Clear all notifications to remove old notifications
[[UIApplication sharedApplication] cancelAllLocalNotifications];
// Add back the still relevant notifications
for (UILocalNotification *notification in activeNotifications) {
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
Inoltre siamo in grado di fare un po 'di filtraggio delle notifiche prima di aggiungere di nuovo se alcuni non sono più necessari, e possiamo afferrare le notifiche attive quando l'applicazione diventa attiva, memorizzarli in una variabile di istanza, e solo aggiungere di nuovo quando l'applicazione si sposta verso il fondo
fonte
2014-01-13 16:00:15
Vuoi dire il centro di notifica? –
Intendo la barra delle notifiche che viene visualizzata all'esterno dell'app! –