0

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

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

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

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

4

2 回答 2

0

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

也许一个按钮会是解决方案?取消所有通知的按钮?或者您运行一个真正的后台任务(可能会持续大约 5 分钟),然后停止所有通知。或者您只需将通知安排在接下来的 5-10 分钟内即可。

你用它们做什么?

于 2012-10-27T13:52:42.300 回答
0

正确的答案是,目前这不能由多任务应用程序完成。一种解决方案是在我们的 info.plist 中设置一个标志,声明您的应用程序希望在用户切换到另一个应用程序时被终止 - 然后您将收到 willTerminate 消息(但随后会被终止)。

关于这个主题有大量线程,其中引用了一个 Apple 文档,该文档告诉您已终止的后台应用程序不会收到 willTerminate 消息在这里

对我来说,这只是意味着我现在可以使用“无法修复”的解决方案关闭打开的错误报告 :-)

于 2012-10-27T17:26:01.473 回答