2013-05-27 15 views
5

Meine App, die ich entwickle, ist eine Alarmtyp-App. Wenn der Benutzer die Home-Taste drückt, plane ich einige UILocalNotifications, um in bestimmten Intervallen zu feuern. Die Benachrichtigungen werden zum richtigen Zeitpunkt ausgelöst, wenn ich die Home-Taste drücke und die App verlasse, aber sie werden überhaupt nicht ausgelöst, wenn ich die Lock-Taste drücke. Ich habe gesucht, aber noch nicht herausgefunden, warum das so ist.UILocalNotification wird nicht ausgelöst, wenn das Gerät gesperrt ist

Wie gesagt, es funktioniert gut, wenn ich zuerst die Home-Taste drücke. Sie feuern zu den richtigen Zeiten, aber wenn ich die "Lock" -Taste oben auf dem Telefon drücke, feuern sie danach nicht. Hat jemand irgendwelche Ideen, warum das so ist? Diese

Dank

+0

Haben Sie überprüft, ob die App im Sperrbildschirm Benachrichtigungen anzeigen darf? Einchecken Einstellungen. –

+0

Nur auf meinem Handy, es ist erlaubt, aber immer noch nicht ausgelöst, wenn gesperrt. Habe es auch mal am Simulator ausprobiert, aber es hat keine Benachrichtigungseinstellungen und feuert auch dort immer noch nicht. – ColaCube

+0

Mit welcher OS-Version und welchen Geräten testen Sie es? – J2theC

Antwort

0

ist, da die Lock-Taste Ihre Anwendung nicht verlassen.

Ich nehme an, dass Sie die UILocalNotifications in applicationWillTerminate: in Ihrem Anwendungsdelegaten einrichten. Wenn Sie bei dieser Methode eine Protokollierung hinzufügen, werden Sie feststellen, dass sie bei Verwendung der Sperrschaltfläche nicht aufgerufen wird.

Das Einrichten Ihrer Benachrichtigungen in applicationWillResignActive: könnte Ihr Problem lösen.

1

Ich weiß, das ist super spät, aber könnte jemand helfen. Dieses Problem wurde auf SO und kein Tutorial über das Internet so übersehen. Wie auch immer, was Sie tun müssen, ist UIUserNotificationActivationModeBackground bei der Einstellung UIUserNotificationSettings setzen, und Sie sollten gut gehen.

Code:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
// Override point for customization after application launch. 
    if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) { 
    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound | UIUserNotificationActivationModeBackground categories:nil]; 
    [application registerUserNotificationSettings:settings]; 
    } 
    return YES; 
} 

Hoffnung, das hilft.

+0

OP speziell gesetzt IOS6 –

+0

Deshalb habe ich gesagt, es könnte jemand in Zukunft helfen, und es ist offensichtlich, da ich die Frage nach 3 Jahren beantworte, ist es nicht für OP bestimmt. –

+0

Zu mir war es nicht und während es guter Rat ist. Warum. –