将我的项目升级到 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")
文档中提到该 builder 方法NotificationCompat.Builder(Context context)已被弃用。我们必须使用具有channelId参数的构造函数:
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,并将该构建器传递给辅助方法并在该方法中设置您的首选设置。