代码之家  ›  专栏  ›  技术社区  ›  notGeek

更新通知通道名称的正确方法是什么?

  •  10
  • notGeek  · 技术社区  · 7 年前

    我想根据区域设置更新通知通道名称。为了做到这一点,我正在使用广播接收器并收听ACTION\u LOCALE\u CHANGED的广播。

    我的问题是更新名称的正确方法是什么?

    我应该这样做吗?

    notificationManager.getNotificationChannel(CHANNEL_ID).setName(“newName”);
    

    或者我应该像这样重新创建频道?

    NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, “newName”, NotificationManager.IMPORTANCE_DEFAULT);
    notificationManager.createNotificationChannel(notificationChannel);
    

    通过这样做(第二种方法),我是否覆盖了除频道名称之外的任何内容?

    1 回复  |  直到 7 年前
        1
  •  18
  •   Saket    3 年前

    您应该像第一次创建频道一样重新创建频道。这个 createNotificationChannel 如果尚未创建通道,则命令将创建该通道,如果已创建通道,则命令将更新该通道。

    如果通道已经创建,那么您唯一可以更改的是 名称 频道和频道的 描述 ,没有其他内容。重要性将被忽略,因为用户可能已经手动更改了通道的重要性。但即使他们没有改变这一点,其重要性也不会更新,实际上这就是通知渠道的目的。给用户管理频道的自由,而不让开发者在应用程序更新时干扰他们。

    总之,通过声明:

    NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ID, “newName”, NotificationManager.IMPORTANCE_DEFAULT);
    notificationManager.createNotificationChannel(notificationChannel);
    

    notificationChannel.setDescription("new description"); //set that before creating the channel