是否需要检查通知通道是否已创建?

Posted

技术标签:

【中文标题】是否需要检查通知通道是否已创建?【英文标题】:Is check that notification channel is already created needed? 【发布时间】:2020-01-06 10:28:14 【问题描述】:

我们是否需要在创建通知通道之前检查它尚未创建?

 private fun createChannel() 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 
        // todo: add here check if channel is already created
        val defaultChannel = NotificationChannel(MEDIA_UPLOAD_NOTIFICATION_CHANNEL_ID, MEDIA_UPLOAD_NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_HIGH)
        defaultChannel.description = MEDIA_UPLOAD_NOTIFICATION_CHANNEL_DESC
        defaultChannel.enableVibration(true)
        notificationManager.createNotificationChannel(defaultChannel)
    

【问题讨论】:

【参考方案1】:

不,您实际上不必检查。如果存在具有相同 ID 的频道,则 android 不会创建另一个频道。

根据文档

使用其原始值创建现有通知通道不会执行任何操作,因此在启动应用程序时调用此代码是安全的。

更多信息https://developer.android.com/training/notify-user/channels#CreateChannel

【讨论】:

【参考方案2】:

按照文档中的建议。

如果创建具有相同原始值的 NotificationChannel,则不会进行任何操作。所以,调用代码是安全的。

请查看文档了解更多详情 - https://developer.android.com/training/notify-user/channels#CreateChannel

【讨论】:

以上是关于是否需要检查通知通道是否已创建?的主要内容,如果未能解决你的问题,请参考以下文章

如何快速自动发送 FCM 或 APNS 消息?

通知渠道重要性是否会被个别通知重要性覆盖?

Android通知——Notification

Android通知——Notification

如何使用rspec编写测试用例来发送通知消息

以编程方式创建和加入Hyperledger Fabric通道