Notifucation 通知

Notification 是显示在手机状态栏的通知 ----- 手机状态栏位于手机屏幕的最上方,那里一般显示手机当前的网络状态、电池状态、时间等。Notification 所代表的是一种具有全局效果的通知,程序一般通过 NotificationManager 服务来发送 Notification。

Android 为 Notification 提供了 Notification.Builder 类,通过该类允许开发者更轻手的创建 Notification 对象。 Notification.Builder 提供了如下常用方法:

  1. setDefaults():设置通知 LED 灯、音乐、振动等;
  2. setAutoCancel():设置点击通知后,状态栏自动删除通知;
  3. setContentTitle():设置通知标题;
  4. setContentText():设置通知内容;
  5. setSmallIcon():为通知设置图标;
  6. setLargeIcon():为通知设置大图标;
  7. setTick():设置通知在状态栏的提示文本;
  8. setContentIntent():设置点击通知后将要启动的程序组件对应的 PendingIntent ;

Android 8 加入了通知 Channel 帮助用户来统一管理通知,开发者可以为不同类型的通知创建同一个通知 Channel ,而用户则可通过该 Channel 统一管理这些通知的行为 ------ 所有使用同一个 Channel 的通知都具有相同的行为。

通知 Channel 可统一管理通知的如下行为:

  1. 重要性;
  2. 声音;
  3. 闪光灯;
  4. 振动;
  5. 在锁屏上显示;
  6. 替换免打扰模式;

APP 第一次运行时可通过程序设置通知 Channel 的行为,但用户完全可以通过 Settings 来改变通知 Channel 的行为,甚至可以随时屏蔽通知 Channel 。一旦用户修改了该通知 Channel 的行为之后,程序将无法通过编程方式修改通知 Channel 的行为,这些设置完全有用户控制。

Android 9 再次改进了消息机制,它新增如下两个功能。

  1. 增强了通知参与者的支持。程序在创建 MessageStyle 时应使用 Person (支持名字、头像等)作为参数,不推荐使用普通的 CharSequence 作为参数,这样可为通知参与者设置更丰富的信息;
  2. 消息支持更丰富的数据。Message 对象可使用 setData() 方法设置更多样的通知数据(如图片),而不像以前仅支持文字通知。

发送 Notification 很简单,按如下步骤进行即可:

  1. 调用 getSystemService(NOTIFICATION_SERVICE) 方法获取系统的 NotificationManager 服务;
  2. 创建 NotificationChannel 对象,并在 NotificationManager 上创建该 Channel 对象;
  3. 通过构造器创建一个 Notification.Builder 对象;
  4. 为 Notification.Builder 设置通知的各种属性;
  5. 创建 MessageStyle 和 Message , 通过 Message 设置消息内容,为 Notification.Builder 设置 MessageStyle 后创建 Notification;
  6. 通过 NotificationManager 发送 Notification;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章