1. ホーム
  2. android

[解決済み] NotificationCompat.Builder は Android O で非推奨となりました。

2022-02-02 04:55:20

質問

をアップグレードした後 Android O

buildToolsVersion "26.0.1"

Android Studio の Lint で、follow notification builder メソッドに非推奨の警告が表示されます。

new NotificationCompat.Builder(context)

問題なのは Android Developers update their Documentation describing NotificationChannel というスニペットを提供してくれましたが、同じ非推奨の警告が表示されています。

Notification notification = new Notification.Builder(MainActivity.this)
        .setContentTitle("New Message")
        .setContentText("You've received new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setChannelId(CHANNEL_ID)
        .build();  

お知らせの概要

質問です。 Android Oをサポートしたまま、通知を作成するための他のソリューションはありますか?

私が見つけた解決策は、Notification.BuilderのコンストラクタにパラメータとしてチャンネルIDを渡すことです。しかし、この解決策は正確に再利用可能ではありません。

new Notification.Builder(MainActivity.this, "channel_id")

解決方法は?

ドキュメントによると、ビルダーメソッドの NotificationCompat.Builder(Context context) は非推奨となりました。そのため、コンストラクタを使用する必要があり、そのコンストラクタには channelId パラメータを使用します。

NotificationCompat.Builder(Context context, String channelId)

NotificationCompat.Builderのドキュメントです。

このコンストラクタはAPIレベル26.0.0-beta1で非推奨となったため、以下を使用してください。 代わりに NotificationCompat.Builder(Context, String) を使用します。すべての投稿された NotificationはNotificationChannel IDを指定する必要があります。

Notification.Builderのドキュメントです。

このコンストラクタは、APIレベル26で非推奨となりました。 代わりに Notification.Builder(Context, String) を使用します。すべての投稿された NotificationはNotificationChannel IDを指定する必要があります。

ビルダーのセッターを再利用したい場合は、ビルダーの作成時に channelId で、そのビルダーをヘルパーメソッドに渡して、そのメソッドで好みの設定をします。