(转)Android之Notification详解

  Notification —— 通知,是一种让你的应用程序在不使用Activity的情况下警示用户。它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity) 警示用户有需要注意的事件发生的最好途径。 Notification 是由NotificationManager(系统服务)统一管理的。

 

  一般来说, 一个Notification应该传送的消息包括:

     1 、一个状态条图标          

     2、在拉伸的状态栏窗口中显示额外的信息和启动一个Application的Intent 

     3、闪灯或LED

     4、电话震动 

 

  在状态栏(Status Bar)中,通知主要有两类(使用FLAG_标记,后面讲解到):

 

      1、正在运行的事件

      2、通知事件

 

  Notification类介绍:

         常量

              //表示发送一个Notification的所携带的效果

             DEFAULT_ALL              使用默认字段

             DEFAULT_LIGHTS       默认闪光

             DEFAULT_SOUND      默认声音(uri,指向路径)

             DEFAULT_VIRATE       默认震动

 

          PS:以上的效果常量可以累加,即通过mNotifaction.defaults |=DEFAULT_SOUND   (有些效果只能在真机上才有,比如震动)

            //设置Flag位

            FLAG_AUTO_CANCEL             该通知能被状态栏的清除按钮给清除掉

            FLAG_NO_CLEAR                    该通知能被状态栏的清除按钮给清除掉

            FLAG_ONGOING_EVENT        通知放置在正在运行

 

    常用字段:

           contentIntent                  设置PendingIntent对象,点击时发送该Intent

           flags                                  设置flag位,例如FLAG_NO_CLEAR等

           defaults                             添加效果

           tickerText                         显示在状态栏中的文字

           when                                发送此通知的时间戳

           icon                                   设置图标

 

    常用方法介绍

        void setLatestEventInfo(Context context , CharSequence contentTitle,CharSequence  contentText,PendingIntent contentIntent)    

           

         功能: 显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象

        参数: context             上下文环境

                      contentTitle      状态栏中的大标题

                      contentText      状态栏中的小标题

                      contentIntent    点击后将发送PendingIntent对象

 

        另外的就是Notification的几步不同构造方法了,其构造方法的参数含义如上,请参考SDK 。

 

    注意:当我们创造了一个Notification对象时,一定要为其设置setLatestEventInfo()方法,否则程序会报错 .

 

 

前面我们说过,NotificationManager是所有Notification的大管家,它的主要职责是加入/移除Notification。

NotificationManager类

   通过获取系统服务来获取该对象:

      NotificationManager mNotificationManager = (NotificationManager)getSystemServic(Context.NOTIFICATION_SERVICE) ;

 

  常用方法:

        public  void cancelAll()                  移除所有通知         (只是针对当前Context下的Notification)

        public  void cancel (int id)              移除标记为id的通知 (只是针对当前Context下的所有Notification)

        public  void notify(String tag ,int id, Notification notification)              将通知加入状态栏, 标签为tag,标记为id

        public  void notify (int id, Notification notification)                                 将通知加入状态栏,,标记为id

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值