繁体   English   中英

iPhone-如何捕获应用程序是否终止(更新徽章图标)

[英]iPhone - How to catch if the app is terminated (to update the badge icon)

我正在设置:

- (void)applicationWillTerminate:(UIApplication *)application
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = 1;
}

在我的应用程序委托中,但徽章从未更新过……可能是什么问题?

当应用程序被杀死(电话关机,任务栏应用程序被杀死,由于内存过载而被系统杀死的应用程序,...)时,我该如何更新该标志?

当您的应用在后台终止时,它没有机会自行清除。 后台运行时,该应用已被暂停; 被杀死时,它只是从RAM中删除。 您的徽章更新需要在此之前进行。

从Apple文档

暂停该应用程序在后台运行,但未执行代码。 系统会自动将应用程序移至此状态,并且在执行此操作之前不会通知它们。 挂起时,应用程序仍保留在内存中,但不执行任何代码。 当发生内存不足的情况时,系统可能会清除挂起的应用程序而不会发出通知,从而为前景应用程序腾出更多空间。

也:

applicationWillTerminate:-让您知道您的应用程序正在终止。 如果您的应用已暂停,则不会调用此方法。

抛出一个NSLog(@"App is being terminated."); 进入-applicationWillTerminate:方法。 我认为您会发现终止应用程序时未调用此方法。

您可以在应用程序正常执行期间或启动应用程序时设置应用程序的徽章图标。

请查看以下应用程序生命周期文档

还要尝试看看下面的哪些方法被调用

applicationWillResignActive:
applicationDidEnterBackground:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM