java - 是否需要检查通知通道是否已创建?
问题描述
我们是否需要在创建通知通道之前检查它尚未创建?
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)
}
}
解决方案
不,你真的不必检查。如果存在具有相同 ID 的频道,则 Android 不会创建另一个频道。
根据文档
使用其原始值创建现有通知通道不会执行任何操作,因此在启动应用程序时调用此代码是安全的。
更多信息,请访问https://developer.android.com/training/notify-user/channels#CreateChannel
推荐阅读
- angular - Angular 8 CSS 不会在刷新、生产构建时加载
- php - 如何在php路由中使用外部函数
- httprequest - 如何使用请求级客户端在akka http httpRequest中设置无缓存标头
- c# - 如何在使用 xmlserializer c# 反序列化时更改 xml 属性?
- reactjs - 无法从 reactjs 中的 axios 向 id=1 文章的 django REST API 后端发出 GET 请求
- c# - 确定关键字周围的单词的有效方法是什么?
- python - 在python3中出现错误“只能将str(而不是“dict”)连接到str”
- asp.net - 概念/迁移- ASP.Net Webforms 到.Net Core Razor / 路由| 映射
- python - 缩进括号在 VS Code 中的 Jupyter Notebooks 中不起作用
- vba - 在鼠标按下时使用 VBA 生成文件并允许用户将文件拖动到资源管理器或其他应用程序