用户终止应用程序(iOS)时的通知

用户终止应用程序(iOS)时的通知,ios,objective-c,iphone,notifications,Ios,Objective C,Iphone,Notifications,我有一个应用程序需要在后台运行,以便执行其后台进程。我想在用户关闭多任务应用程序时随时向用户发送通知,以便提示他们重新打开应用程序。我已经阅读了这里的讨论:,并尝试了这些解决方案,但都没有在用户终止应用程序时发出可靠的通知 下面是我的代码现在在AppDelegate.m文件中的样子: - (void)applicationWillTerminate:(UIApplication *)application { UNUserNotificationCenter* center = [UNU

我有一个应用程序需要在后台运行,以便执行其后台进程。我想在用户关闭多任务应用程序时随时向用户发送通知,以便提示他们重新打开应用程序。我已经阅读了这里的讨论:,并尝试了这些解决方案,但都没有在用户终止应用程序时发出可靠的通知

下面是我的代码现在在AppDelegate.m文件中的样子:

- (void)applicationWillTerminate:(UIApplication *)application
{
    UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
    [center removeAllDeliveredNotifications];
    //Try and alert the user
    UILocalNotification *notification = [[UILocalNotification alloc] init];
    notification.alertBody = @"App was terminated unexpectedly. Notification-based logging won't work. Tap to restart App!";
    notification.soundName = UILocalNotificationDefaultSoundName;
    [application scheduleLocalNotification:notification];

    // Saves changes in the application's managed object context before the application terminates.
    [self saveContext];
}

在模拟器的调试模式下,当应用程序因多任务而关闭时,此解决方案始终提供通知。不幸的是,在我的手机上,我只是偶尔在应用程序终止时收到此通知。很多次我因为多任务而关闭了应用程序,但没有出现任何通知

我之所以重新问这个问题,是因为对链接帖子的回复已经有多年了,我有理由相信这是可以实现的。和应用程序都有我想要的行为


如果任何人有一个可靠的解决方案,在用户从多任务处理关闭应用程序时立即向用户发送本地通知,那将非常感谢。我用Objective C编写代码,因此Objective C中的解决方案是理想的。

无法确保你的应用程序在后台运行。运行时可以随时在后台以静默方式终止它,并且在这种情况下无法获取事件


那些似乎能成功做到这一点的应用可能实际上是在后台做了一些事情,例如,它们正在进行核心位置更新或播放声音。这种特殊的行为大大增加了在后台终止应用程序的可能性。

“我多次因多任务而终止应用程序,但没有出现通知”可能您没有收到通知,因为系统已在后台终止应用程序,因此不再运行,并且没有
applicationWillTerminate
事件。没有办法检测到这一点。事实上,这正是我们所说的。