Notification的作用
Notification是一种全局效果的通知,在系统的通知栏中显示。既然作为通知,其基本作用有:
显示接收到短消息、即时信息等
显示客户端的推送(广告、优惠、新闻等)
显示正在进行的事物(后台运行的程序,如音乐播放进度、下载进度)
Notification的基本操作:
Notification的基本操作主要有创建、更新和取消三种。一个Notification的必要属性有三项,如果不设置的话在运行时会抛出异常:
小图标,通过setSmallIcon方法设置
标题,通过setContentTitle方法设置
内容,通过setContentText方法设置。
除了以上三项,其他均为可选项,不过一般而言,通知需要有交互的功能,所以一般Notification具有Action属性,这样就能跳转到App的某一个Activity、启动一个service或者发送一个Broadcast。
当系统受到通知时,可以通过震动、铃声、呼吸灯等多种方式进行提醒。
下面就从Notification的基本操作逐条介绍:
Notification的创建
Notification的创建过程主要涉及到Notification.Builder、Notification、NotificationManager
Notification.Builder:
使用建造者模式构建Notification对象。由于Notification.Builder仅支持Android4.1及之后的版本,为了解决兼容性的问题,使用V4兼容库中的NotifivationCompat.Builder类。
Notification:通知对应类,保存通知相关的数据。NotificationManager向系统发送通知时会用到。
NotificationManager:通知管理类,调用NotificationManager的notify方法可以向系统发送通知。
获取 NotificationManager 对象:
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
前面讲到,Notification有三个必要属性以及一个很有必要的属性Action。下面我们就创建一个简单的Notification,主要有以下三步:
获取NotificationManager实例
实例化NotificationCompat.Builder并设置相关属性
通过builder.build方法来生成Notification对象,并发送通知
private void sendNotification(){
Intent intent = new Intent(this,SettingsActivity.class);
PendingIntent mPendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder builder = (NotificationCompat.Builder) new NotificationCompat.Builder(this)
/