【问题标题】:Scheduled UILocalNotification does not fire after when restarting app or closing app重新启动应用程序或关闭应用程序后,计划的 UILocalNotification 不会触发
【发布时间】:2015-04-02 23:21:44
【问题描述】:

我正在使用以下代码安排 UILocalNotification:

        UILocalNotification *notification = [[UILocalNotification alloc] init];
        notification.fireDate = [[NSDate date] dateByAddingTimeInterval:60];
        notification.repeatInterval = NSMinuteCalendarUnit;
        notification.alertBody = [NSString stringWithFormat:@"Wurmprophylaxe für Lassy”];
        notification.alertAction = @"Wurmprophylaxe";
        //notification.userInfo = userInfo;
        notification.timeZone = [NSTimeZone localTimeZone];
        notification.soundName = UILocalNotificationDefaultSoundName;
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];

通知会触发,直到我终止应用程序、重新启动应用程序或通过 xcode 重新运行。简而言之,它不会持续存在。此外,即使应用程序再次运行,它也不会再次触发。应用程序是否在前台都没有关系。一旦终止,通知就会停止触发,如果我列出本地通知,它将不再存在。似乎 UILocalNotification 没有被存储。如果应用程序处于前台、后台或根本运行,则不会发送通知。

为什么在应用启动之间将其删除?

注意:如果我安排了新通知,则之前的通知也会被删除。这太奇怪了。

【问题讨论】:

    标签: ios iphone uilocalnotification


    【解决方案1】:

    这是正常行为。用户“终止”应用程序将积极清除系统为应用程序管理的任何进程。 (编辑:这对于许多后台进程都是如此,但可能不适用于本地通知。)通过 Xcode 重新加载新应用程序肯定会。

    应用程序的正常过程是首先进入后台状态,然后在后台被系统终止。系统管理的任务将继续,如有必要,应用程序将被重新唤醒。

    【讨论】:

    • 但是一旦系统/ios再次启动,通知应该再次触发,或者?而且,在安排新通知时,不应删除以前安排的通知。这不可能是正常行为!
    • 如果应用被用户终止,或者被Xcode替换,系统会自行清除。
    • 因此,如果用户终止应用程序,应用程序将不得不重新安排它们再次启动时,之前安排的通知将被清除,这是正常行为,如果应用程序没有运行?恕我直言,这似乎是一个非常狭义的用例......?
    • 但是,这不是预期的行为,即在安排新通知时会清除先前的安排通知,而这正是发生的情况。要么是我如何安排通知,要么我在这里遗漏了什么?
    • 可能本地通知的处理方式与其他系统事件不同——现在在我进行的测试中,即使我在应用切换器中终止了应用,我也会收到重复的通知。
    猜你喜欢
    • 1970-01-01
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    相关资源
    最近更新 更多