2012-11-19 19 views
6

Kiedy moja aplikacja iOS jest uruchomiony w tle reaguje dobrze naWprowadzenie Zamknięty iOS App z lokalnych Powiadamianie

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

ale gdy aplikacja jest zamknięty to wywala i daje SIGKILL błąd.

Jak uruchomić metodę w aplikacji, jeśli jest zamknięta po otrzymaniu powiadomienia?

Odpowiedz

1

Nie można uruchomić metody w aplikacji po otrzymaniu powiadomienia lokalnego. Powiadomienie może dostarczyć dowolną kombinację alarmu, numeru identyfikatora ikony i dźwięku (< 30 sekund).

Możesz uruchomić metodę, gdy pojawi się na pierwszym planie, ponownie za pośrednictwem powiadomienia lub w inny sposób.

Gdy aplikacja jest w tle, zadzwoni pod numer applicationWillEnterForeground: przed wznowieniem. Możesz zastąpić tę metodę, aby obsłużyć wszystko, co jest potrzebne po powiadomieniu. Możesz zastąpić applicationDidEnterBackground:, aby określić, kiedy aplikacja faktycznie wejdzie w tło.

Metoda application:didReceiveLocalNotification: jest wywoływana, gdy aplikacja otrzymuje powiadomienie, ale znajduje się na pierwszym planie. Alert, numer plakietki i dźwięk nie zostaną wyzwolone, gdy aplikacja znajdzie się na pierwszym planie.

5

Gdy aplikacja jest zamknięta, to po otrzymaniu powiadomienia niż po wywołaniu powiadomienia zostaje wywołana metoda - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 

    if (localNotif) 
{ 
    // code here. 
}