最近AndroidStudio升级到3.0之后,也遇到了不少坑。
例如最近写程序时要使用到NotificationCompat.Builder时,就出现了版本不同而造成的问题。
使用NotificationCompat.Builder(this)方法时,AndroidStudio提示'Builder(android.content.Context)' is deprecated.
这句话大概意思就是不太赞成使用Builder(this)这个方法,当然代码也并不会报错,不太影响使用,只是代码会画一条横线。如下图所示:
但是我们之前如果要推送通知的话一直都是使用这个方法。出现这个现象的原因就是更新到AndroidStudio3.0之后,gradle变成了com.android.support:appcompat-v7:26.1.0
也就是升级到Android O 8.0版本,即API26.0之后,不再赞成使用NotificationCompat.Builder(context)的方法,取而代之的是使用如下这个方法:
NotificationCompat.Builder(Context context, String channelId)
需要自己定义一个String类型的信道通量,然后使用以上这个方法即可。我选择在程序首部定义了private String channeId后,再使用这个方法变不会再提示不支持了。
这里贴上两个参考网站:
一个是stackoverflow上关于Notification.Bulider()方法改进的回答,https://stackoverflow.com/questions/45462666/notificationcompat-builder-deprecated-in-android-o
一个是Google官方的Android文档,关于更新到API26.0之后的Notification.Builder()的使用方法,谷歌Android官方文档-Notification.Builder()