人不应该一直怀念过去,要活在当下,所以我现在讲的这个Notification 的使用是在API16及以上的环境的,不兼容低版本
步骤开始:
1.我们先创建一个Notification ,看下面代码可以看出是使用的建造者模式,顺便给它设置三个基本属性,注意,没这三个基本属性它是活不了的
Notification notification = new Notification.Builder(this) .setSmallIcon(R.drawable.ic_launcher)//设置小图标 .setContentTitle("这是标题") .setContentText("这是内容") .build();2.获取Notification管理器
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);3.然后用这个Notification管理器把Notification弹出去,那个0是id,用来标识这个Notification的。
notificationManager.notify(0, notification);4.最后我们发现点击弹出来的Notification没反应,因为我们没让它干嘛,所以我决定让它跳转到一个Activity里。这时候我们不是给它一个Intent,而是一个PendingIntent,意思就是等待的Intent,随时候着的意思,PendingIntent对Intent进行了包装,相当于将Intent跟Context进行打包,也就是PendingIntent是自带Context的,这样的话,就算应用程序关闭了,也不影响PendingIntent的启动。
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,TestActivity.class), 0); notification.contentIntent = pendingIntent; 或者在创建的时候这样设置 .setContentIntent(pendingIntent)5.我们可以给它设置了flag,让它被点击后自动清除。
notification.flags = Notification.FLAG_AUTO_CANCEL; 或者在创建的时候这样设置 .setAutoCancel(true)