NotificationCompat.Builder过期的解决方案
我们之间这样定义是会报错的。
Notification notification = new NotificationCompat.Builder(MainActivity.this)
解决方案是要创建一个通知渠道,并将通知渠道的id传入Builder()
String id = "channel_01";
//构建NotificationChannel实例
NotificationChannel notificationChannel = new NotificationChannel(id,"通知渠道",NotificationManager.IMPORTANCE_HIGH);//高优先级
//在notificationManager中创建通知渠道
notificationManager.createNotificationChannel(notificationChannel);
Notification notification = new NotificationCompat.Builder(MainActivity.this,id)
/*
调用NotificationManager的notify()方法将通知显示出来
传入的第一个参数是通知的id
传入的第二个参数是notification对象
*/
notificationManager.notify(1,notification);
全部代码
Intent intent = new Intent(this, Main2Activity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
/*
调用NotificationChannel创建通知渠道实例
并为它设置属性
*/
//通知渠道的ID
String id = "channel_01";
//构建NotificationChannel实例
NotificationChannel notificationChannel = new NotificationChannel(id,"通知渠道",NotificationManager.IMPORTANCE_HIGH);//高优先级
//在notificationManager中创建通知渠道
notificationManager.createNotificationChannel(notificationChannel);
Notification notification = new NotificationCompat.Builder(MainActivity.this,id)
//指定通知的标题内容
.setContentTitle("This is content title")
//设置通知的内容
.setContentText("This is content text")
//指定通知被创建的时间
.setWhen(System.currentTimeMillis())
//设置通知的小图标
.setSmallIcon(R.drawable.ic_launcher_foreground)
//设置通知的大图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(),
R.drawable.ic_launcher_background))
//实现点击跳转后关闭通知
.setAutoCancel(true)
//实现点击后跳转到新的页面
.setContentIntent(pendingIntent)
.build();
/*
调用NotificationManager的notify()方法将通知显示出来
传入的第一个参数是通知的id
传入的第二个参数是notification对象
*/
notificationManager.notify(1,notification);