当用户关闭应用程序时取消所有本地通知

时间:2012-10-27 09:35:50

标签: objective-c ios xcode

我的应用中存在一个小错误。 我的应用程序在应用程序运行时的特定时间显示通知,并在切换按钮时取消所有通知。 我的问题是,只要用户使用iOS的多任务功能关闭应用程序,通知仍会显示。

我尝试添加以下不起作用的代码:

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

问题是我的应用程序应该在应用程序运行时显示通知,但在应用程序终止时不应显示通知。 为什么上面的代码不起作用?

2 个答案:

答案 0 :(得分:0)

仅仅因为您的应用在应用更换器中可见,并不意味着它仍在运行..它可以在任何时候关闭。您无法区分关闭应用的操作系统或关闭应用的用户。

也许一个按钮就是解决方案?一个取消所有通知的按钮? 或者你运行一个真正的后台任务(可以持续约5分钟)并在之后停止所有通知。或者您只是为接下来的5-10分钟安排通知,就是这样。

你在用什么?

答案 1 :(得分:0)

正确的答案是,目前多任务应用程序无法完成此操作。一种解决方案是在我们的info.plist中设置一个标志,声明你的应用程序想要在用户切换到另一个应用程序时被杀死 - 然后你将获得willTerminate消息(但然后被杀死)。

在这个主题上有大量的主题,其中一个引用Apple文档,告诉你已终止的后台应用程序没有得到willTerminate消息here

对我而言,这只是意味着我现在可以通过“无法修复”的解决方案关闭一个开放的错误报告: - )