Android 开发之 Notification 详解
来源:互联网 发布:金麦田家政软件 编辑:程序博客网 时间:2024/05/19 23:59
通知(Notification)的各种展现形式
通知展现位置
- 以图标的形式显示在通知区域中
- 详细信息展示在抽屉式通知栏中
- 以浮动形式通知
- 在锁屏上展示通知
通知展现样式
- 标准样式
- 扩展样式
- 自定义样式
通知的基础用法
创建通知
发送通知需要通过 NotificationManager.notify()
来实现,该函数的一个必要参数是 Notification 对象,Notification 对象描述了通知的具体内容,构建该对象需要利用 Notification.Builder 类,Notification.Builder 是 Android 3.0 (API 11) 引入的,为了兼容低版本,我们一般使用 Support V4 包提供的 NotificationCompat.Builder 来构建 Notification。具体代码如下:
更新通知
要想更新通知,需要利用 NotificationManager.notify()
的 id 参数,该 id 在应用内需要唯一。要想更新特定 id 的通知,只需要创建新的 Notification,并发出与之前所用 id 相同的 Notification。如果之前的通知仍然可见,则系统会根据新的 Notification 对象的内容更新该通知。相反,如果之前的通知已被清除,系统则会创建一个新通知。
删除通知
删除通知可以有多种方式: 1. 通过 NotificationCompat.Builder
设置 setAutoCancel(true)
,这样当用户点击通知后,通知自动删除。 2. 通过 NotificationManager.cancel(id)
方法,删除指定 id 的通知 3. 通过 NotificationManager.cancelAll()
方法,删除该应用的所有通知
通知的进阶用法
浮动通知
Android 5.0(API 21)引入浮动通知的展现形式,想让通知能够以浮动形式展现,需要设置 Notification 的优先级为 PRIORITY_HIGH 或者 PRIORITY_MAX 并且使用铃声或振动,示例代码如下:
锁屏上展示通知
Android 5.0 通知现在还可显示在锁定屏幕上。用户可以通过“设置”选择是否将通知显示在锁定屏幕上,并且您可以指定您应用中的通知在锁定屏幕上是否可见。通过 setVisibility() 并指定以下值之一:
1. VISIBILITY_PUBLIC 显示通知的完整内容。 2. VISIBILITY_SECRET 不会在锁定屏幕上显示此通知的任何部分。 3. VISIBILITY_PRIVATE 显示通知图标和内容标题等基本信息,但是隐藏通知的完整内容。
设置 VISIBILITY_PRIVATE 后,您还可以提供其中隐藏了某些详细信息的替换版本通知内容。例如,短信 应用可能会显示一条通知,指出“您有 3 条新短信”,但是隐藏了短信内容和发件人。要提供此替换版本的通知,请先使用 NotificationCompat.Builder 创建替换通知。创建专用通知对象时,请通过 setPublicVersion() 方法为其附加替换通知。
扩展样式通知
通过 Builder.setStyle() 函数可以为通知设置扩展样式,NotificationCompat 提供了三种扩展样式:BigPictureStyle, BigTextStyle, InboxStyle。
自定义通知布局样式
通过 NotificationCompat.setContent() 可以设置自定义布局,该接口的参数为 RemoteViews 类型,通过 xml 构建出需要显示的 RemoteViews 然后调用 setContent 完成设置。自定义通知布局的可用高度取决于通知视图。普通视图布局限制为 64 dp,扩展视图布局限制为 256 dp。在 Android 4.1(API 16)以后,Notification 还支持大视图的通知,通过 Notification.bigContentView 设置对应的 RemoteViews 即可。
- Android开发之Notification详解
- Android 开发之 Notification 详解
- Android开发之通知栏Notification详解
- Android开发之通知栏Notification详解
- Android 之 Notification 详解
- Android开发之Notification
- android开发之Notification
- Android开发之Notification
- Android开发之Notification
- android开发之Notification
- Android--通知之Notification详解
- Android--通知之Notification详解
- Android之Notification通知详解
- Android开发之自定义Notification
- Android开发之Notification(通知)
- Android Notification通知栏开发详解
- android应用开发详解(十六)------------------Notification
- Android Notification通知栏开发详解
- CentOS无显卡启动启动不了,而Windows却可以远程登录
- 黑苹果 U盘进阶
- 设计模式 从招式与内功谈起——设计模式概述(三):设计模式有什么用?附:个人观点
- 混合对象 "类" ---js实现继承的两种方式
- 分布式日志收集系统Apache Flume的设计介绍
- Android 开发之 Notification 详解
- Swift 3.0多线程
- C# ListView
- 大数据下的小媒体——访新蓝网副总监洪永和
- Android中Thread和Service的区别(两篇不错的讲解)
- 集群和负载均衡的简单介绍
- IOS中常用关键字详解
- Android自带的下拉刷新控件
- JavaWeb学习总结——JavaWEB_Session(尚硅谷_佟刚老师)(