2012-03-26 2 views
0

Ich habe eine UILocalNotification und möchte eine Warnung auslösen, wenn die App von Hintergrund zu Vordergrund wiederhergestellt wird. Ich kann den Alarm in didReceiveLocalNotification erstellen, aber diese Methode kann nur aufgerufen werden, wenn die App aktiv ist. Jetzt möchte ich überprüfen, ob eine Benachrichtigung ausgelöst wurde, während sich die App im Hintergrund befindet, und dann eine Warnung auslösen, wenn die App wiederhergestellt wird.feuern eine Warnung, wenn eine UILocalNotification aufgerufen wird

das ist meine aktuelle Methode

- (void)applicationDidBecomeActive:(UIApplication *)application 
    { 

// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 

application.applicationIconBadgeNumber = 0; 

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

NSLog(@"prefs %@",[prefs stringForKey:@"kTimerNotificationUserDef"]); 

if([prefs stringForKey:@"kTimerNotificationUserDef"] != nil) 
{ 
    [prefs setObject:nil forKey:@"kTimerNotificationUserDef"]; 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Timer Alert" message:[prefs stringForKey:@"kTimerNotificationUserDef"] delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 

    [alert show]; 
    } 
} 

die NSUserDefaults gesetzt wird, wenn ich die Meldung zu initialisieren, jedoch wird dieser Alarm genannt, auch wenn die Meldung noch nicht eintraf. Also, ich nehme an, dass ich etwas tun kann wie:

if([prefs stringForKey:@"kTimerNotificationUserDef"] != nil && didFireNotifFromBackground) 

irgendwelche Vorschläge? Vielen Dank!

Antwort

1
- (void)application:(UIApplication *)application 
    didReceiveLocalNotification:(UILocalNotification *)notification { 

notification.applicationIconBadgeNumber = 0; 
NSString *reminderText = [notification.userInfo objectForKey:kRemindMeNotificationDataKey]; 
[viewController showReminder:reminderText]; 
} 

zeigen die Alertview, wo Klasse u

- (void)showReminder:(NSString *)text 
{ 

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reminder" message:text delegate:nil cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
[alertView show]; 
[alertView release]; 
} 
+2

didReceiveLocalNotification lokale Benachrichtigung Brennen nicht aufgerufen werden kann, wenn die Anwendung im Hintergrund ist. – Diffy

+0

Verweise von hier http://useyourloaf.com/blog/2010/7/31/adding-local-notifications-with-ios-4.html – akk

+0

Ich versuchte dieses Beispielprojekt, aber ich bekomme nicht die Warnung, wenn die App erholt sich von Hintergrund zu Vordergrund. – Diffy

0

Es in Ihren Einstellungen angezeigt werden soll ist. Einstellungen -> Benachrichtigung -> Ihre Anwendung auf der rechten Seite -> Wählen Sie Ihren Benachrichtigungsstil.

Dann sind Sie Benachrichtigung erhalten, direkt während

Verwandte Themen