Android Notification完全指南
需积分: 25 179 浏览量
更新于2024-09-17
收藏 54KB DOC 举报
"Notification_使用详解(很全) - 介绍如何在Android中使用Notification进行系统通知的创建、配置和管理,包括获取NotificationManager、定义Notification对象、设置Notification属性、发送及取消通知的步骤。"
在Android开发中,Notification是向用户展示非侵入性提醒的重要工具,它通常出现在状态栏中,用户可以随时查看而不打断当前操作。这篇详解主要涵盖了创建和管理Notification的基本流程。
1. 获取NotificationManager:
Android系统提供了一个名为`NotificationManager`的服务,用于管理和显示通知。开发者可以通过`getSystemService`方法获取到`NotificationManager`实例,代码如下:
```java
NotificationManager m_NotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
```
其中`NOTIFICATION_SERVICE`是常量,代表Notification服务。
2. 定义Notification对象:
创建一个`Notification`对象,它是用来描述通知内容和行为的类:
```java
Notification m_Notification = new Notification();
```
3. 设置Notification属性:
- 图标:使用`icon`属性设置状态栏中显示的图标,例如:
```java
m_Notification.icon = R.drawable.icon;
```
- tickerText:这是通知首次出现时滚动显示的文本,例如:
```java
m_Notification.tickerText = "Button1通知内容..";
```
- 默认声音:通过`defaults`属性设置默认的声音、震动等效果,如只设置声音:
```java
m_Notification.defaults = Notification.DEFAULT_SOUND;
```
- 点击行为:通过`setLatestEventInfo`方法设置点击通知后的行为,通常是一个`PendingIntent`,用于启动一个新的Activity或执行其他操作:
```java
Intent m_Intent = new Intent(NotificationDemo.this, DesActivity.class);
PendingIntent m_PendingIntent = PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0);
m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知", m_PendingIntent);
```
4. 发送Notification:
使用`NotificationManager`的`notify`方法将定义好的Notification发送出去,其中的整数参数是唯一标识,用于区分不同的通知:
```java
m_NotificationManager.notify(0, m_Notification);
```
5. 取消Notification:
当需要取消某个通知时,可以调用`NotificationManager`的`cancel`方法,传入相同的唯一标识:
```java
m_NotificationManager.cancel(0);
```
除了上述基本用法,Notification还有很多高级特性,如自定义布局、添加大图标、设置优先级、使用通知渠道等。在实际开发中,为了提高用户体验,开发者应根据需求灵活运用这些特性,并遵循Android的设计指南,确保通知既有效又不打扰用户。例如,可以设置不同级别的优先级,使得重要的通知能更醒目地显示,而不太重要的通知则可以更低调地处理。同时,从Android O开始,应用需要为每个通知创建专属的“通知渠道”,以便用户可以自定义每个渠道的通知行为。
2011-05-04 上传
2021-02-20 上传
175 浏览量
2020-08-29 上传
2015-12-10 上传
2013-09-14 上传
2014-04-18 上传
2013-06-07 上传
SkylineRunner
- 粉丝: 9
- 资源: 9
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍