应用程序终止时删除本地通知
Posted
技术标签:
【中文标题】应用程序终止时删除本地通知【英文标题】:Removing Local Notifications when app has been terminated 【发布时间】:2012-11-27 17:11:17 【问题描述】:在我的应用程序中,我设置了本地通知以在应用程序运行时通知用户。为了在应用程序终止时清理这些通知,我设置了applicationWillTerminate:
来清除这些通知:
- (void)applicationWillTerminate:(UIApplication *)application
NSLog(@"applicationWillTerminate");
[[UIApplication sharedApplication] cancelAllLocalNotifications];
不幸的是,如果应用程序崩溃,或者我终止调试,则不会调用此函数,因此我仍然会收到发送到设备的本地通知。
有没有办法确定应用程序是否意外退出,以便我整理这些?
【问题讨论】:
【参考方案1】:我使用这个 KSCrash 库取得了巨大的成功。也许它也可以帮助你:
https://github.com/kstenerud/KSCrash
或者,您是否在 .plist 文件中设置了 UIApplicationExitsOnSuspend
?如果不这样做,则无法保证在使用 ios 4 时会调用 applicationWillTerminate
。
【讨论】:
它看起来是一个不错的崩溃报告器,但不幸的是它只允许在崩溃时调用 C 方法,而不是 Objective-C,因此我将无法调用cancelAllLocalNotifications
。
好的。我会看看我是否能找到另一个解决方案。感谢您的留言。
根据您的想法,我尝试了 Crittercism,它在崩溃时有一个 Objective-C 委托......不幸的是,这也不起作用。
我也在考虑 Crittercism。我已经更新了我的答案,也许这可以以某种方式帮助你。谢谢!
不幸的是我也不能使用UIApplicationExitsOnSuspend
,因为我的应用程序需要在后台运行。我设置的本地通知应该在后台提醒您,但是如果应用程序崩溃或卸载,我需要删除本地通知。以上是关于应用程序终止时删除本地通知的主要内容,如果未能解决你的问题,请参考以下文章