zoukankan      html  css  js  c++  java
  • 【慢慢学Android】:12.Notification示例

    详细介绍:http://blog.csdn.net/chenzheng_java/article/details/6249357

    http://blog.csdn.net/qinjuning/article/details/6915482

      private void addNotificaction() {  
            NotificationManager manager = (NotificationManager) this  
            .getSystemService(Context.NOTIFICATION_SERVICE);  
            // 创建一个Notification  
            Notification notification = new Notification();  
            // 设置显示在手机最上边的状态栏的图标  
            notification.icon = R.drawable.excel;  
            // 当当前的notification被放到状态栏上的时候,提示内容  
            notification.tickerText = "注意了,我被扔到状态栏了";  
              
            /*** 
             * notification.contentIntent:一个PendingIntent对象,当用户点击了状态栏上的图标时,该Intent会被触发 
             * notification.contentView:我们可以不在状态栏放图标而是放一个view 
             * notification.deleteIntent 当当前notification被移除时执行的intent 
             * notification.vibrate 当手机震动时,震动周期设置 
             */  
            // 添加声音提示  
            notification.defaults=Notification.DEFAULT_SOUND;  
            // audioStreamType的值必须AudioManager中的值,代表着响铃的模式  
            notification.audioStreamType= android.media.AudioManager.ADJUST_LOWER;  
              
            //下边的两个方式可以添加音乐  
            //notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");   
            //notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");   
            Intent intent = new Intent(this, Notification2Activity.class);  
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);  
            // 点击状态栏的图标出现的提示信息设置  
            notification.setLatestEventInfo(this, "内容提示:", "我就是一个测试文件", pendingIntent);  
            manager.notify(1, notification);  
              
        }  
      
    }  
    

      

        先来区分以下状态栏和状态条的区别:

        1、状态条就是手机屏幕最上方的一个条形状的区域;

              在状态条有好多信息量:比如usb连接图标,手机信号图标,电池电量图标,时间图标等等;

        2、状态栏就是手从状态条滑下来的可以伸缩的view;

              在状态栏中一般有两类(使用FLAG_标记):

              (1)正在进行的程序;

              (2)是通知事件;

         大概来描述创建一个Notification传送的信息有:

        1、一个状态条图标;

        2、在拉伸的状态栏窗口中显示带有大标题,小标题,图标的信息,并且有处理该点击事件:比如调用该程序的入口类;

        3、闪光,LED,或者震动;

          快速创建一个Notification的步骤简单可以分为以下四步:

          第一步:通过getSystemService()方法得到NotificationManager对象;

          第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等;

          第三步:通过NotificationManager对象的notify()方法来执行一个notification的快讯;

          第四步:通过NotificationManager对象的cancel()方法来取消一个notificatioin的快讯;

         下面对Notification类中的一些常量,字段,方法简单介绍一下:

         常量:

            DEFAULT_ALL                  使用所有默认值,比如声音,震动,闪屏等等

            DEFAULT_LIGHTS            使用默认闪光提示

            DEFAULT_SOUNDS         使用默认提示声音

            DEFAULT_VIBRATE         使用默认手机震动 

          【说明】:加入手机震动,一定要在manifest.xml中加入权限:

                             <uses-permission android:name="android.permission.VIBRATE" />

            以上的效果常量可以叠加,即通过

                    mNotifaction.defaults =DEFAULT_SOUND  |  DEFAULT_VIBRATE ;  

                或mNotifaction.defaults |=DEFAULT_SOUND   (最好在真机上测试,震动效果模拟器上没有)

            //设置flag位

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

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

            FLAG_ONGOING_EVENT      通知放置在正在运行

            FLAG_INSISTENT                    是否一直进行,比如音乐一直播放,知道用户响应

          常用字段:

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

               defaults                             添加默认效果

               flags                                  设置flag位,例如FLAG_NO_CLEAR等

               icon                                  设置图标

               sound                                设置声音

               tickerText                        显示在状态栏中的文字

               when                                发送此通知的时间戳

    Notification.build构造Notification方法介绍:   

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

              

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

            参数: context             上下文环境

                          contentTitle      状态栏中的大标题

                          contentText      状态栏中的小标题

                          contentIntent    点击后将发送PendingIntent对象

          说明:要是在Notification中加入图标,在状态栏和状态条中显示图标一定要用这个方法,否则报错!

          最后说一下NotificationManager类的常用方法:

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

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

          NotificationManager常用方法介绍:

                   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

  • 相关阅读:
    UVA 408 (13.07.28)
    linux概念之用户,组及权限
    Java实现 蓝桥杯 历届试题 网络寻路
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 九宫重排
    Java实现 蓝桥杯 历届试题 九宫重排
  • 原文地址:https://www.cnblogs.com/VortexPiggy/p/2541027.html
Copyright © 2011-2022 走看看