Notifcation的常用方法及底层实现
setContentTitle():设置标题
setContentText():设置内容
setWhen():设置通知的时间
setSmallIcon():设置通知的小图标
setLargeIcon():设置通知的大图标
setAutoCancel():自动删除通知
普通通知
定义:是在系统的通知栏中呈现多样式持久性消息的类。
普通通知实现
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher_background);
builder.setContentTitle("普通通知");
builder.setContentText("我是普通通知");
//点击自动消失
builder.setAutoCancel(true);
//实现跳转
Intent intent=new Intent(this,MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 101, intent, PendingIntent.FLAG_CANCEL_CURRENT);
builder.setContentIntent(pendingIntent);//跳转到指定的Activity
Notification notification = builder.build();
notificationManager.notify(1,notification);
//点击方法
分组通知实现
获取通知管理器
实例化多个通知
设置通知的属性(通知分组)
发送通知
Notification.Builder builder = new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher_background);
builder.setContentTitle("分组通知");
builder.setContentText("我是分组通知");
builder.setGroup("a");
builder.setGroupSummary(true);//把通知折叠到最后一行
Notification.Builder builder1 = new Notification.Builder(this);
builder1.setSmallIcon(R.drawable.ic_launcher_background);
builder1.setContentTitle("分组通知2");
builder1.setContentText("我是分组通知2");
builder1.setGroup("a");
Notification.Builder builder2 = new Notification.Builder(this);
builder2.setSmallIcon(R.drawable.ic_launcher_background);
builder2.setContentTitle("分组通知3");
builder2.setContentText("我是分组通知3");
builder2.setGroup("a");
Notification build = builder.build();
Notification build1 = builder1.build();
Notification build2 = builder2.build();
notificationManager.notify(2,build);
notificationManager.notify(3,build1);
notificationManager.notify(4,build2);
进度条通知
final Notification.Builder builder=new Notification.Builder(this);
builder.setSmallIcon(R.drawable.ic_launcher_background);
builder.setContentTitle("请等待");
builder.setProgress(100,0,false);
timer=new Timer();
timer.schedule(new TimerTask() {
int porr=0;
@Override
public void run() {
if(porr==100){
notificationManager.cancel(5);
timer.cancel();
}else{
porr+=20;
builder.setProgress(100,porr,false);
notificationManager.notify(5,builder.build());
}
}
},0,1000);