Android通知

Android通知

什么是通知(Notification):具有全局的效果,可以在任何界面快速预览消息
1.在任何界面都可以快速预览
2.快速打开app
3.实时正在进行的浏览
如何使用通知:
这里写图片描述
创建通知对象的方式:

NotificationCompat.Builder nb = new NotificationCompat.Builder(this);

发布通知的方法

manager.notify(1, builder.build());

常用的几个方法
- setSmallIcon() 用于设置通知的小图标,只能使用纯 alpha 图层的图片进行设
置,小图标会显示在系统状态栏上。
- setLargeIcon() 设置通知的大图标,当下拉通知后显示的图标。
- setWhen() 指定通知被创建的时间,以毫秒为单位,下拉通知后会将时间显示在相应的通知上。
- notify() 方法接收两个参数,参数一 id 指定通知的 id,要保证每个通知的 id 是不同的;参数二 Notification对象,传入之前创建好的即可。
- setContentText() 文本内容
- setContentTitle() 标题

实现系统默认的通知栏效果:
第一步:获取状态通知栏管理:

NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

第二步:实例化通知栏构造器NotificationCompat.Builder:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 

第三步:对Builder进行配置:

    mBuilder.setContentTitle("测试标题")//设置通知栏标题  
    mBuilder.setContentText("测试内容") 
    //设置通知栏点击意图 
    mBuilder.setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) 
    //设置通知集合的数量           
    //mBuilder.setNumber(number)   
    //通知首次出现在通知栏,带上升动画效果的 
    mBuilder.setTicker("测试通知来啦")  
    //通知产生的时间,会在通知信息里显示,一般是系统获取到的时间  
    mBuilder.setWhen(System.currentTimeMillis())
    //设置该通知优先级 
    mBuilder.setPriority(Notification.PRIORITY_DEFAULT)  
    //设置这个标志当用户单击面板就可以让通知将自动取消  

    //ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放      音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)  
    //mBuilder.setAutoCancel(true)

      mBuilder.setOngoing(false)
      //向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合 
    mBuilder.setDefaults(Notification.DEFAULT_VIBRATE) 
    //设置通知小ICON 
    mBuilder.setSmallIcon(R.drawable.ic_launcher); 

一个简单的小例子

public void simpleNotice(View view) {  
        //此Builder为android.support.v4.app.NotificationCompat.Builder中的,下同。  
        Builder mBuilder = new Builder(this);  
        //系统收到通知时,通知栏上面显示的文字。  
        mBuilder.setTicker(天津,晴,215度,微风);  
        //显示在通知栏上的小图标  
        mBuilder.setSmallIcon(R.drawable.consult_answer);  
        //通知标题  
        mBuilder.setContentTitle(天气预报);  
        //通知内容  
        mBuilder.setContentText(天津,晴,215度,微风);  
        //设置大图标,即通知条上左侧的图片(如果只设置了小图标,则此处会显示小图标)    mBuilder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.share_sina));  
        //显示在小图标左侧的数字  
        mBuilder.setNumber(6);  
        //设置为不可清除模式  
        mBuilder.setOngoing(true);  
        //显示通知,id必须不重复,否则新的通知会覆盖旧的通知(利用这一特性,可以对通知进行更新)  
        nm.notify(1, mBuilder.build());  
    }  

猜你喜欢

转载自blog.csdn.net/l_y_j_21/article/details/80570633