【发布时间】:2017-06-23 19:17:34
【问题描述】:
Notification.Builder(context) 最近在 Android O 中的 Notification Channels 位置已被弃用。
问题:
在使用 Notification.Builder(context, StringID) 而不是 Notification.Builder(context)后,我确实收到了我的 Android O 设备的通知。
但是,在 Android 23 (M) 上尝试之后,我没有收到通知。我调试了我的代码,一旦调试器在 Android 23 (M) 上发布 Notification.Builder(context, StringID) 行,它就会停止执行。
修复:
为了解决这个问题,我使用 if/else 条件在 Android O 设备和其他设备之间进行隔离。
我有以下代码sn-p:
Notification.Builder notificationBuilder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notificationBuilder = new Notification.Builder(mContext,
mContext.getResources().getString(R.string.notification_id_channel));
} else {
notificationBuilder = new Notification.Builder(mContext);
}
Android Studio 中的 Lint 显示以下弃用行:
问题:
有没有办法摆脱弃用警告线?
【问题讨论】:
-
应该有一个快速修复(Alt-Enter 与光标在弃用中)为抑制弃用警告的方法添加注释。或者,切换到
NotificationCompat.Builder,特别是当支持库的 v26 版本已结束测试时。 -
切换到
NotificationCompat -
否,NotificationCompat.Builder(Context context) 也已被 API 级别 O 弃用。developer.android.com/reference/android/app/…
-
是的,它已被
NotificationCompat(Context context, String channelId)取代。您甚至阅读过您发布的链接吗? -
我很确定它确实可以,因为我使用它并且它工作正常,所以你为什么不先尝试一下而不是说它不起作用? NotificationCompat 专门用于处理不同的操作系统版本
标签: android android-notifications android-8.0-oreo