首先解释一下notification的应用场景,一般我们手机来短息的时候在手机的上方都会弹出一个通知,你可以下拉上方的菜单看详细信息,点击这个通知就会跳转得到相应的短信界面,那么怎么实现的呢我们直接上代码解释,notification有三种创造方式
方法一:(已经被舍弃,但是通用)
//首先我们要获得一个通知管理器 NotificationManager,是一个系统的service
Notification manager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
//PendingIntent作用类似于intent不同的是不是立刻执行,而是等通知被点击以后执行
PendingIntent PendingIntent=PendingIntent.getActivity(this,0,newIntent(this,MainActivity),0);
Notification notify = new Notification();
notify.icon=R.drawable.message; //设置显示的图片
notify.tickerText="你有新消息"; //设置通知提示的标题
notify.when=System.CurrentTimeMills();//设置通知显示时间,这里获取系统时间
notify.setLatestEventInfo(this,"notification Title","this is a message",pendingIntet)
//设置拉开菜单后,通知显示的标题,内容,点击后触发的事件
notify.number=1; //如果同一个通知发送多条可以用这个区分
notify.flags|=Notification.FLAG_AUTO_CANCEL//通知点击后自动消失
manager.notify(FlAG_ID,notify);//通过menager发送通知,FLAG_ID是通知的id,自己定义
方法二:(该方法在API11以后才使用)
//通过Builer来创建
Notification notify = new Notification.Builder(this)
.setSmallIcon(R.drawable.message)//设置小图,大图用setLargeIcon设置
.setTiker("Ticker Text")
.setContenTitle("拉开后标题")
.setContentText("拉开后内容")
.setContentIntent(pandingIntent)//点击后触发的事件
.setNumber(1)//如果同一个通知发送多条可以用这个区分
.getNotification();//获取通知对象
notify.flags|=Notification.FLAG_AUTO_CANCEL//通知点击后自动消失
manager.notify(FlAG_ID,notify);//通过menager发送通知,FLAG_ID是通知的id,自己定义
创建方法三:(该方法是API16以后才支持的)
//通过Builer来创建
Notification notify = new Notification.Builder(this)
.setSmallIcon(R.drawable.message)//设置小图,大图用setLargeIcon设置
.setTiker("Ticker Text")
.setContenTitle("拉开后标题")
.setContentText("拉开后内容")
.setContentIntent(pandingIntent)//点击后触发的事件
.setNumber(1)//如果同一个通知发送多条可以用这个区分
.build();//获取通知对象
notify.flags|=Notification.FLAG_AUTO_CANCEL//通知点击后自动消失
manager.notify(FlAG_ID,notify);//通过menager发送通知,FLAG_ID是通知的id,自己定义
写文章不易,路过的伙伴辛苦点个赞,谢谢支持!
网友评论