通知渠道
按重要程度对通知进行分组
通知渠道 是 CoddyKit 上的免费 Android Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 4 节课。
通知渠道
从 Android 8.0(API 26)开始,每条通知都必须属于一个渠道。渠道会将相关通知分组,并允许用户在系统设置中分别控制它们。
为什么需要渠道
渠道为用户提供了细粒度的控制。用户不必为整个应用使用一个总开关,而是可以将“促销”静音,同时让“消息”保持响铃。这可以减少通知疲劳。
渠道是必需的
在 API 26 及更高版本上,如果发布通知时没有有效渠道,系统将什么也不做。您必须在向该渠道发布第一条通知之前创建渠道。
重要程度级别
每个渠道都有一个重要程度,用于设置其默认行为:
IMPORTANCE_HIGH:播放声音并以悬浮横幅显示IMPORTANCE_DEFAULT:播放声音IMPORTANCE_LOW:不播放声音IMPORTANCE_MIN:不播放声音,并最小化显示
创建渠道
使用 id、用户可见的名称和重要程度构建一个 NotificationChannel。
val channel = NotificationChannel(
"messages",
"Messages",
NotificationManager.IMPORTANCE_HIGH
).apply {
description = "Chat messages from your contacts"
}向系统注册
通过 createNotificationChannel,使用 NotificationManager 注册一次渠道。使用相同 id 再次创建是安全且不会产生影响的。
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)尽早创建渠道
一个适合创建渠道的位置是 Application.onCreate,这样在任何代码路径尝试发布通知之前,渠道就已经存在。
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
createNotificationChannels()
}
}渠道 ID 保持稳定
发布通知时,需要通过渠道id引用该渠道。请选择稳定的 id,并将其保存在常量中,以确保构建器与渠道始终匹配。
object Channels {
const val MESSAGES = "messages"
const val PROMOTIONS = "promotions"
}设置由用户掌控
创建后,渠道由用户控制。如果用户降低其重要程度或将其静音,您的代码无法覆盖这些设置。您只能在创建时设置初始重要程度。
渠道组
对于拥有许多渠道的应用,NotificationChannelGroup 可将渠道整理到设置中的不同部分,例如分别将所有“团队 A”和“团队 B”渠道分组。
API 26 之前的兼容性
在低于 API 26 的设备上不存在渠道;渠道 id 会被直接忽略。使用 NotificationCompat 可以让同一份代码安全地跨版本运行。
快速检查
请测试您对通知渠道的理解。
回顾
您学习了通知渠道:
- API 26+ 要求每条通知都拥有一个渠道
- 重要程度级别会设置默认声音和悬浮提示行为
- 使用
NotificationChannel创建,并通过createNotificationChannel注册 - 尽早创建渠道;最终由用户控制其设置
下一步:构建通知。
常见问题解答
「通知渠道」课时是免费的吗?
是的 — 「通知渠道」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 4 节课。
「通知渠道」这节课中我会学到什么?
按重要程度对通知进行分组 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Android Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「通知渠道」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Android Academy 课中编写并运行代码吗?
能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。