Notification讲解

来源:互联网 发布:淘宝店铺开店流程 编辑:程序博客网 时间:2024/06/06 07:15

一、创建

1,创建通知管理器对通知进行管理

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

    (Context.getSystemService(XXX_SERVICE)是使用系统服务的写法,很常用,比如判断网络连接,开关wifi,系统服务名字不同,返回值也不同)

2,根据有参构造函数生成Notification对象

   Notification notification = new Notification(R.mipmap.ic_launcher,"This is ticker",System.currentTimeMillis());

    第一个参数是通知的图标,第二个参数是通知被创建时系统栏一闪而过的提示信息,第三个参数是通知被创建时的时间

3,设置通知布局 setLatestEventInfo

   notification.setLatestEventInfo(context,"This is title","This is content",pi);

   第一个参数是Context ,第二个参数是通知标题,第三个参数是通知内容,第四个参数是PendingIntent对象


   PendingIntent:与Intent类似,Intent倾向立即去执行某一个动作,PendingIntent 更加倾向在某个合适的时机去执行。可简单理解为延迟执行的Intent

  获取PendingIntent对象:PendingIntent调用静态方法(共三个静态方法,分别是getActivity(,,,),getBroadcast(,,,),getService(,,,),可根据需要自己调用,此外这三个方法中都有三个参数)

  Intent intent = new Intent(MainActivity.this,NotificationActivity.class);

   PendingIntent  pi= PendingIntent.getActivity(context,0,intent,FLAG_CANCEL_CURRENT)

   第一个参数是context,第二个参数一般用不到,传为0即可,第三个参数为Intent对象,第四个参数用于确定PendingIntent的行为,有

  FLAG_ONE_SHOT(得到的pi只能使用一次,下次使用报错) , FLAG_NO_CREATE(pi不存在时不创建,返回null) ,FLAG_CANCEL_CURRENT(每次都创建一个新的pi),FLAG_UPDATE_CURRENT(不存在时就创建,创建好了之后就一直使用它,每次使用都会更新pi的数据)

4.notify  

    manager.notify(1,notification)

   第一个参数是id,在后面会有用,第二个参数是Notification对象,即是刚刚创建的notification


打开通知栏将会看到我们刚刚创建的通知,点击一下,将会跳转到NotificationActivity,但是通知栏的图标并没有消失,我们需要在NotificationActivity中进行处理

获取NotificationManager的对象,然后manager.cancel(1);//1即是我们前面所设的id

二.Notification的一些属性

    sound属性

              类型:Uri对象

               用法:Uri soundUri = Uri.fromFile("路径"); notification.sound = soundUri;

     vibrate属性

              类型:长整型数组long[]

             用法:   long[] vibrates = {0,500,500,500,500};notification.vibrate = vibrates;

                         长整型数组 下标为0表示手机静止时长,下标为1表示手机震动时长,之后再表示静止,再震动,一直下去

                          还需要声明权限

     ledRGB,ledOnMS ,ledOffMS分别表示led前置灯的颜色(红绿蓝),亮起时长(ms),暗去时长(ms)

     flags:

           指定通知的一些行为,如显示LED灯

           notification.falgs = Notification.FALG_SHOW_LIGHTS

 如果想使用默认设置:

notification。default = Notification。DEFAULT_ALL


0 0
原创粉丝点击