2017-11-15 7 views
0

Localeに従って通知チャネル名を更新したいとします。これを行うために、私はBroadcastReceiverを使用していて、ACTION_LOCALE_CHANGEDブロードキャストを待ち受けています。通知チャネル名を更新する正しい方法は何ですか?

私の質問は、名前を更新する正しい方法は何ですか?

このような操作をしてください。

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

このようにチャンネルを再作成する必要はありますか?

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

これを行うことで(2番目のアプローチ)、私はもちろんチャンネル名以外のものを上書きしますか?

答えて

0

チャネルを初めて作成したときと同じように再作成する必要があります。 createNotificationChannelコマンドはまだ作成されていない場合はチャネルを作成し、すでに作成されている場合はチャネルを更新します。チャネルがすでに作成されている場合は

、その後、あなたが変えることができる唯一のことは、チャネルの名前とチャネル説明、何もないです。ユーザがチャネルの重要度を手動で変更した可能性があるため、重要性は無視されます。しかし、彼がそれを変更していなくても、重要性はまだ更新されず、実際は通知チャンネルの目的です。アプリが更新されたときに開発者が困惑することなく、ユーザーにチャンネルを管理する自由を与える。

ので要約すると、宣言することにより:すでに作成したチャネルで

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

を、チャンネルの名前は重要性を更新し、ではなくなります。チャンネルの説明を更新する場合は、次のようにすることもできます。

notificationChannel.setDescription("new description"); //set that before creating the channel 
関連する問題