0Pricing
Android Academy · 课时

通知渠道

按重要程度对通知进行分组

通知渠道 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 通知渠道
  2. 构建通知
  3. 操作和深层链接
  4. 通知运行时权限
← 返回 Android Academy