小编典典

Android O 中不推荐使用 NotificationCompat.Builder

all

将我的项目升级到 Android O后

buildToolsVersion "26.0.1"

Android Studio 中的 Lint 显示以下通知生成器方法已弃用的警告:

new NotificationCompat.Builder(context)

问题是: Android 开发人员更新了他们描述 NotificationChannel 的文档以支持 Android O
中的通知,并为我们提供了一个代码段,但同样有弃用的警告:

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")

阅读 132

收藏
2022-08-03

共1个答案

小编典典

文档中提到该 builder 方法NotificationCompat.Builder(Context context)已被弃用。我们必须使用具有channelId参数的构造函数:

NotificationCompat.Builder(Context context, String channelId)

NotificationCompat.Builder
文档:

此构造函数在 API 级别 26.0.0-beta1 中已弃用。改用 NotificationCompat.Builder(Context,
String)。所有发布的通知都必须指定一个 NotificationChannel Id。

Notification.Builder
文档:

此构造函数在 API 级别 26 中已弃用。请改用 Notification.Builder(Context,
String)。所有发布的通知都必须指定一个 NotificationChannel Id。

如果您想重用构建器设置器,您可以使用 来创建构建器channelId,并将该构建器传递给辅助方法并在该方法中设置您的首选设置。

2022-08-03