下拉菜单的通知栏

写在前面:通过 静态getSystemService(NOTIFICATION_SERVICE); 方法 拿到通知栏管家类
                  通过静态new Notification.Builder(上下文)方法 拿到通知建设者类,这里第一次见,new静态方法的。
                通知类中的链式调用方法:
(1)方法:设置提醒标志符notification.flags

 
可以替换上图第二行右边的的代码及效果:
Notification. FLAG_SHOW_LIGHTS              //三色灯提醒,在使用三色灯提醒时候必须加该标志符

 Notification.FLAG_FOREGROUND_SERVICE    //表示正在运行的服务

Notification.FLAG_ONGOING_EVENT          //发起正在运行事件(活动中)

Notification.FLAG_INSISTENT   //让声音、振动无限循环,直到用户响应 (取消或者打开)

Notification.FLAG_ONLY_ALERT_ONCE  //发起Notification后,铃声和震动均只执行一次

Notification.FLAG_AUTO_CANCEL      //用户单击通知后自动消失

Notification.FLAG_NO_CLEAR          //只有全部清除时,Notification才会清  ,不清楚该通知(QQ的通知无法清除,就是用的这个)

2.通过setContentIntent(PendingIntent intent)方法中的意图设置对应的flags



 以下代码(或代码的实例)可替换第三个参数flags

Notification.FLAG_SHOW_LIGHTS              //三色灯提醒,在使用三色灯提醒时候必须加该标志符

Notification.FLAG_ONGOING_EVENT          //发起正在运行事件(活动中)

Notification.FLAG_INSISTENT   //让声音、振动无限循环,直到用户响应 (取消或者打开)

Notification.FLAG_ONLY_ALERT_ONCE  //发起Notification后,铃声和震动均只执行一次

Notification.FLAG_AUTO_CANCEL      //用户单击通知后自动消失

Notification.FLAG_NO_CLEAR          //只有全部清除时,Notification才会清除 ,不清楚该通知(QQ的通知无法清除,就是用的这个)

Notification.FLAG_FOREGROUND_SERVICE    //表示正在运行的服务


 
(2)方法:.setDefaults(int defaults)     (NotificationCompat.Builder中的方法,用于提示)


功能:向通知添加声音、闪灯和振动效果的最简单、使用默认(defaults)属性,可以组合多个属性(和方法1中提示效果一样的)

对应属性:

Notification.DEFAULT_VIBRATE    //添加默认震动提醒  需要 VIBRATE permission

Notification.DEFAULT_SOUND    // 添加默认声音提醒

Notification.DEFAULT_LIGHTS// 添加默认三色灯提醒

Notification.DEFAULT_ALL// 添加默认以上3种全部提醒


(3)方法:setVibrate(long[] pattern)


功能:设置震动方式。

使用:


 

(4)方法:.setLights(intledARGB ,intledOnMS ,intledOffMS )


  功能:android支持三色灯提醒,这个方法就是设置不同场景下的不同颜色的灯。

描述:其中ledARGB 表示灯光颜色、 ledOnMS 亮持续时间、ledOffMS 暗的时间。

注意:1)只有在设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候,才支持三色灯提醒。

          2)这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。


也可以使用以下方法:
 
(5)方法:.setSound(Uri sound)


 
(6)方法:.setPriority(int pri)

     
(7)方法:setOngoing(boolean ongoing)
  功能:设置为ture,表示它为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
(8)方法:setProgress(int max, int progress,boolean indeterminate)

注意:此方法在4.0及以后版本才有用,如果为早期版本:需要自定义通知布局,其中包含ProgressBar视图

使用:如果为确定的进度条:调用setProgress(max, progress, false)来设置通知,在更新进度的时候在此发起通知更新progress,并且在下载完成后要移除进度条,通过调用setProgress(0, 0, false)既可。

如果为不确定(持续活动)的进度条,这是在处理进度无法准确获知时显示活动正在持续,所以调用setProgress(0, 0, true) ,操作结束时,调用setProgress(0, 0, false)并更新通知以移除指示条

【1】什么是下拉菜单
下拉菜单分2部分:
                             1.没有下拉的时候,屏幕最上面的那一行,一般上面显示的有电量,信号强度等等
                             2.下拉之后出现的一个页面。通常来通知的时候会显示通知
【2】实现原理
2.1首先通过静态方法getSystemService(NOTIFICATION_SERVICE);找到NotificationManager通知栏管家类,该类只负责显示通知和定义通知栏的属性,不负责具体通知的内容和内容属性(通知来临时的呼吸灯,震动,效果音),然后通过Notification noti = new Notification.Builder(上下文) 通知建设者 类的实例,设置通知的大标题 小标题 大通知图片 小通知图片 以及 通知来临时的呼吸灯,震动,效果音等等,最后将通知放入通知栏管家  manager.notify(1, noti);方法中
【3】实现步骤
3.1首先实例化 通知栏管家类
NotificationManager  manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
3.2实例化  通知建设者  并设置大小标题,和大小通知图标
//通过Notification类的静态方法Builder拿到实例,它负责设置通知栏的内容和内容属性,注意!!!下面是链式调用法
        Notification noti = new Notification.Builder(this)
                //设置大标题
                .setContentTitle("title")
                //设置文本内容
                .setContentText("text")
                //设置显示的时间
                .setWhen(System.currentTimeMillis())
                //设置意图对象,当通知栏被点击的时候会 执行意图,该意图参数是延迟意图,意图准备好了但是没有发送,其它和普通意图一样
                .setContentIntent(intent)
                //设置小通知栏的标题,就是显示电量等 屏幕最上面的那一横行
                .setTicker("ticker")
                
                // 设置该通知优先级,呼吸灯上红色最高级 其次蓝色绿色
                .setPriority(Notification.PRIORITY_MAX)
                // 该通知是否是正在运行的通知(例如通知栏上的音乐播放器就是正在运行的通知)
                .setOngoing(false)
                // 设置通知来临震动
                .setDefaults(Notification.DEFAULT_VIBRATE)
                // 设置通知来临发出通知音效
                .setDefaults(Notification.DEFAULT_SOUND)
                // 设置通知来临呼吸灯闪烁
                .setDefaults(Notification.DEFAULT_LIGHTS)
                // 设置通知来临 以上三种通知
                .setDefaults(Notification.DEFAULT_ALL)
                //设置小通知栏的图案(就是显示电量 那最上面的一横行通知)
                .setSmallIcon(R.drawable.one)
                //设置下拉后通知栏中的大图标
                .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.one))
                //!!!!设置之后一定要创建通知栏
                .build();
3.3将通知显示到通知栏上
manager.notify(1, noti);
【4】注意事项: 通知建设者 类notification类中设置好内容和通知属性之后一定要 创建, 然后提交到 通知栏管家类的实例notify()方法中显示
具体代码:notification
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值