最近在看《第一行代码》,到通知这一块内容的时候,涉及到了setLatestEventInfo()的使用,但是现在android已经不支持这个方法了,于是上网查找了一下替代方法。
先上原来使用setLatestEventInfo()的代码
//1.新建一个通知管理器
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
//2.创建Notification实例,第一参数是传入通知的实例,第二个参数用于指定通知的ticker内容,第三个参数用于指定通知被创建的时间
Notification notification = new Notification(R.drawable.ic_launcher,"This is ticker text",System.currentTimeMillis());
//3.setLatestEventInfo里面的参数分别表示,contenx,标题,内容,PendingIntent
PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this,NotificationActivity.class),PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this,"This is content title","This is content text",pi);
//4.调用managet的notify让通知显示出来
manager.notify(1,notification);
替代方法:
替换2,3步骤
Intent intent = new Intent(this,NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_CANCEL_CURRENT);
Notification.Builder builder = new Notification.Builder(this);//新建Notification.Builder对象
builder.setContentTitle("Test");
builder.setContentText("message");
builder.setSmallIcon(R.mipmap.ic_launcher);
builder.setContentIntent(pi);//执行pi
Notification notification = builder.getNotification();//将builder对象转换成普通的notification