何时更新 iOS 中的图标徽章编号?

When to update icon badge number in iOS?

我有一个待办事项列表应用程序,我想在图标徽章中显示未完成任务的数量。

我的问题是:我应该在每次用户 deletes/adds 应用程序中的新任务时更新徽章编号,还是仅在应用程序即将执行时更新它进入后台模式?

你随时都可以做。它不会影响您的应用性能。

我通常会尝试编写代码,好像应用程序或 phone 可能随时崩溃。

因此,首先,如果数字正确至关重要,请尽快完成。

如果性能成为问题,则延迟操作(另外,在启动时重新计算和更新)。

我认为最好的方法是在应用程序即将进入后台时更新徽章计数,因为没有理由在每次 add/delete 任务时更新。

因此您可以调用您的徽章更新方法;

- (void)viewWillDisappear:(BOOL)animated

我恭敬地不同意这里的每个人:

I generally try and code as if the app or phone could crash at any point.

好吧,请确保您的应用程序是防崩溃的,并避免无用的方法调用。它们确实不会对性能产生太大影响,但它很麻烦而且不好看。

您希望您的代码干净、小巧且高效。

这个问题有帮助:

 When does the user see the badge?

好吧,当他离开应用程序时。这就是你的答案。等他快能看到徽章的时候更新一下。

您避免了一点开销,更重要的是,您在必要时工作,而不是 "all the time just in case you worked wrong somewhere else"。 我坚持这一点:不要通过做其他错误来纠正错误。

您最终会在本地跟踪您的徽章计数(也许 NSUserDefaults ?),并在进入后台或离开应用程序时在 AppDelegate 中更新它 :) 而且您很幸运!