Czy UILocalNotification może być użyty do wznowienia zadania, które jest w tle
Chciałbym wiedzieć, czy można jakoś „obudzić” zadanie w tle, aby szybko sprawdzić coś w sieci. Myślę, że można to zrobić za pomocą UILocalNotification, jednak bez względu na to, co próbowałem , Nie mogłem uzyskać powiadomienia didReceiveLocalNotification, aby zrobiło Cokolwiek, gdy aplikacja jest w tle. Po uruchomieniu natychmiast zamykam aplikację, naciskając przycisk Początek (istnieje 10-sekundowe opóźnienie na lokalne powiadomienie). Ten kod działa PERFEKCYJNIE, gdy aplikacja znajduje się na pierwszym planie i po prostu siedzi tam ...
W pliku nagłówka delegata aplikacji:
UILocalNotification *localNotif;
Do testowania ustawiłem lokalne powiadomienie, aby szybko wystrzelić w uruchomieniu appDelegate.
localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10]; // the date you want the notification to fire.
localNotif.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];
NSLog(@"setup the timer for 10 seconds");
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UIApplicationState state = [application applicationState];
NSLog(@"getting kicked");
if (state == UIApplicationStateInactive) {
// Application was in the background when notification was delivered.
NSLog(@"INACTIVE..");
} else {
NSLog(@"ACTIVE..");
}
}