当设备被锁定时UILocalNotification不会触发

问题描述:

我正在开发的应用是一个闹钟类应用。当用户按下主页按钮时,我会安排一些UILocalNotifications以一定的时间间隔触发。当我按下主页按钮并退出应用程序时,通知会在正确的时间点亮,但如果我按下锁定按钮,它们根本不会触发。我已经四处搜寻,但还没有发现为什么这是尚未。当设备被锁定时UILocalNotification不会触发

正如我所说,当我首先按下home按钮时,它工作正常。他们在正确的时间开火,但如果我按下手机顶部的“锁定”按钮,他们不会在此之后开火。任何人有任何想法,为什么这是?

谢谢

+0

您是否检查过应用程序是否被允许在锁定屏幕上显示通知?检入设置。 –

+0

刚刚在我的手机上检查过,它是允许的,但锁定时仍不会触发。刚刚在模拟器上也尝试过,但它没有任何通知设置,并且在那里也没有启动。 – ColaCube

+0

你正在测试什么操作系统版本和设备? – J2theC

这是因为锁定按钮不会退出您的应用程序。

我假设你在应用程序委托中设置UILocalNotificationsapplicationWillTerminate:。如果您在此方法中添加了一些日志记录,则会看到使用锁定按钮时未调用它。

applicationWillResignActive:中设置您的通知可能会解决您的问题。

我知道这是超晚,但可能有助于某人。这个问题在SO上被忽略了,没有通过互联网的教程。无论如何,当你设置UIUserNotificationSettings时,你需要做的是设置UIUserNotificationActivationModeBackground,你应该很好走。

代码:

- (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; 
} 

希望这有助于。

+0

OP专门设置IOS6 –

+0

这就是为什么我说它可能有助于未来的人,这很明显,因为我在3年后回答这个问题,它不适用于OP。 –

+0

太棒了,它不是,虽然它是很好的建议。为什么。 –