iOS UILocalNotification non essere visualizzata durante app in background
-
26-10-2019 - |
Domanda
FISSO - Ok, trovò quello che era, si è verificato un [[UIApplication sharedApplication] cancelAllLocalNotifications];
errant essere licenziato quando io non me l'aspettavo
Il pozzo là è il tuo problema.
Grazie per l'aiuto a tutti, mi dispiace di averlo rivelarsi essere solo la sindrome coder muto.
Ho costruito la mia notifica locale in questo modo:
- (void)scheduleNotification {
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Class cls = NSClassFromString(@"UILocalNotification");
if (cls != nil) {
UILocalNotification *notif = [[cls alloc] init];
NSLog(@"%@", [NSDate date]);
notif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10];
notif.alertBody = NSLocalizedString(@"Hello.", nil);
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
NSLog(@"Notification scheduled at %@", notif.fireDate);
[notif release];
}
}
Come previsto in uscita il mio registro di debug corretti fireDate 10 secondi in futuro. Se non lascio la mia app ho un callback application:didReceiveLocalNotification:
successo.
L'incidente di percorso qui è se premo il pulsante per programmare questa notifica e premere il tasto home per metterlo in background. Se faccio questo, la notifica mai incendi e non ho mai ottenere una vista avviso dal sistema operativo.
Mi sono perso qualcosa di ovvio qui? Ho guardato su e giù qui e la documentazione Apple e sento che ho perso qualcosa di ovvio.
Qualsiasi aiuto sarebbe molto apprezzato. Grazie.
Soluzione 3
Ok, trovò quello che era, si è verificato un errante [[UIApplication sharedApplication] cancelAllLocalNotifications]; essere inviato quando si entra lo sfondo.
Altri suggerimenti
Si veda l'esempio nella documentazione di Apple: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1
E 'possibile che non impostazione del fuso orario a [NSTimeZone defaultTimeZone] è la causa del problema? GMT viene presunta se fuso orario non è impostato (nil default).
Hai provato avvolgendo il codice in un processo in background?