Android 通知通道最大计数

Posted

技术标签:

【中文标题】Android 通知通道最大计数【英文标题】:Android notification channel maximum count 【发布时间】:2018-03-13 11:47:42 【问题描述】:

我是在 Oreo 中实现 android 通知通道的新手。单个应用程序的最大通知通道数是多少。我们可以创建无限频道还是有一定数量的?

【问题讨论】:

【参考方案1】:

据我所知,应用可以创建的频道数量没有限制。 NotificationChannel 的唯一目的是为用户提供对通知行为的更多控制。没有办法减少每个应用的通知数量。

您可以在Create and Display Notification on Android Oreo | With Example阅读有关通知频道的详细信息

【讨论】:

【参考方案2】:

您可以同时拥有的频道数量没有记录限制,但只要您删除了其他频道,您可以创建频道的次数没有限制。

文件 PreferencesHelper.java 包含当前设置为 50.000 的限制

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/core/java/com/android/server/notification/PreferencesHelper.java

当它超过这个限制时,它被用来限制创建更多通道,抛出异常"Limit exceed; cannot create more channels"

不幸的是,该值不可公开访问,因此您可能想要实施的任何限制检查都必须由您自己进行硬编码。我的建议是将您自己的限制设置为您认为开始不合理的数字,当达到该限制时,您会检查您的通知渠道以找出正在发生的事情并修复它。例如,如果您的应用永远不需要创建超过 5 个频道,那么将限制设置为 6 将是一个不错的开始方式。

【讨论】:

【参考方案3】:

随着 Android Oreo 的出现,开发者可以使用通知渠道来分解他或她的应用可以按类型向我们提供的通知。频道由开发人员决定,这个想法是给我们一种方法来区分对我们重要的通知和不重要的通知,然后决定它们将如何显示。有些应用程序会有很多不同的渠道。有的只有几个,有的只有一个。

O 之前的 Android 版本中,开发人员使用所谓的优先级来决定如何向您显示通知。如果他们认为通知很重要,他们可以将其设置为窥视(在屏幕上显示视觉指示)或发出声音,或两者兼而有之。如果他们觉得不是,它只会放在托盘中,让您下次通过它们时看到。

现在他们将事情分解为渠道,我们可以决定如何显示每种类型的通知。同一类型的所有通知(例如,您的 Twitter 提要上的回复)都被放置在同一频道中,而没有任何其他类型的通知与其分组。

作为奖励,允许我们使用多个帐户的应用程序可以为每个帐户组合使用通道 - 您的个人电子邮件和工作电子邮件可以遵循相同的规则并以相同的方式向您显示内容,无论哪个帐户收到通知。

您应该阅读以下内容:

https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ManageChannels

示例:

【讨论】:

谢谢。但我想知道通知通道数的限制。我搜索了更多网站(包括 developer.android.com),没有人描述通知计数。

以上是关于Android 通知通道最大计数的主要内容,如果未能解决你的问题,请参考以下文章

Android 8 通知通道的默认优先级

Android 通知通道说明

如何为Android创建小于O的通知通道

Android通知——Notification

Android通知——Notification

Android 应用程序图标中的通知计数徽章