1、通知(Notification)是应用程序没有运行在前台时可以向用户发出一些提示消息的功能,发出通知后,手机状态栏会显示通知,用户可以通过下拉状态栏来查看和操作通知;

2、Notification 的基本用法:

  1)Android 中通过 NotificationManager 来管理通知,可以用 Context 的 getSystemService() 方法获取到,改方法接收一个字符串参数来指定获取哪个系统服务,这里传入 Context.NOTIFICATION_SERVICE 即可;

  2)Notification 对象可以通过其带参构造函数创建,其中包括三个参数:第一个用于指定通知的图标;第二个用于指定通知的 ticker 内容,即通知被创建时状态栏显示的瞬时信息;第三个用于指定通知的创建时间;

  3)Notification 对象创建完成后调用其 setLatestEventInfo() 方法为其设置标准布局;

  4)Notification 创建完毕之后就可以通过 NotificationManager 对象来进行显示,调用的方法为 notify(), 它接收两个参数:第一个参数为 id, 要保证为每个通知锁指定的 id 都是唯一的,第二个参数是 Notification,这里可以传入刚刚创建的 Notification 对象;

  5)通过设置 Notification setLatestEventInfo() 方法的第四个参数可以设置通知的点击事件:

    --该参数为一个 PendingIntent 对象,它可以简单地理解为延迟执行的Intent;

    --PendingIntent 主要提供了几个静态方法用于获取 PendingIntent 的实例,可以选择使用 getActivity()、getBroadcast()、getService() 方法;

    --上述三个方法接收的参数都是相同的,主要有四个:第一个从参数为 Context 对象;第二个参数一般为 0, 第三个参数是一个 Intent, 可以通过这个Intent 构建PendingIntent 的意图,第四个参数用于确定 PendingIntent 的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT 和FLAG_UPDATE_CURRENT 这四种值可选;

  6)Notification 的其他技巧:

    --可以设置 Notification 的 sound 属性来设置通知在显示时的提示音,这个 sound 为一个 Uri 对象;

    --设置Notification 的 vibrate 属性可以设置通知显示时的震动提示,该属性为一个长整型数组,表示手机静止和震动的时长(毫秒),如long[] vibrates = {0, 1000, 1000, 1000};表示通知显示时立刻震动1秒,再静止一秒,最后又震动一秒;

    --通过ledARGB、ledOnMS、ledOffMS 以及flags 这几个属性来实现通知显示时的 LED 闪烁效果,其中:ledARGB 用于控制LED 灯的颜色,ledOffMS用于指定LED 灯暗去的时长,ledOnMS 用于指定LED 灯亮起的时长,这两个均以毫秒为单位,flags 可用于指定通知的一些行为,其中包括显示LED 灯这一选项;

    --可以直接使用通知的默认效果,它会根据当前手机的环境来决定播放什么铃声,以及如何振动:notification.defaults = Notification.DEFAULT_ALL;

05-11 13:45