Android Notification完全指南
4星 · 超过85%的资源 需积分: 25 144 浏览量
更新于2024-09-22
收藏 54KB DOC 举报
"这篇文档详细介绍了Android中的Notification的使用方法,包括如何创建、设置属性以及取消Notification。"
在Android开发中,Notification是一个至关重要的组件,它允许应用在系统状态栏中向用户显示提醒,即使应用不在前台运行也能与用户进行交互。下面是Notification的详细使用步骤和相关知识点:
1. 获取NotificationManager:
首先,你需要通过`NotificationManager`来管理Notification的显示和清除。这可以通过调用`getSystemService`方法,并传入`NOTIFICATION_SERVICE`常量来实现。例如:
```java
NotificationManager m_NotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
```
`this`通常代表当前的`Context`,如Activity或Service。
2. 创建Notification对象:
接着,你需要实例化一个`Notification`对象,这通常是这样的:
```java
Notification m_Notification = new Notification();
```
3. 设置Notification属性:
- 图标:使用`icon`字段设置状态栏和通知中心显示的小图标,例如:
```java
m_Notification.icon = R.drawable.icon;
```
- Ticker文本:`tickerText`用于设置通知首次出现时在通知栏滚动显示的文本:
```java
m_Notification.tickerText = "Button1通知内容..";
```
- 声音:使用`defaults`字段可以设置默认的通知声音,如:
```java
m_Notification.defaults = Notification.DEFAULT_SOUND;
```
默认值可以是`Notification.DEFAULT_SOUND`(声音)、`Notification.DEFAULT_VIBRATE`(振动)或`Notification.DEFAULT_LIGHTS`(LED灯闪烁)。
4. 设置意图(Intent):
为了在用户点击Notification时启动相应的Activity或Service,你需要创建一个`Intent`并包装成`PendingIntent`:
```java
Intent m_Intent = new Intent(NotificationDemo.this, DesActivity.class);
PendingIntent m_PendingIntent = PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0);
```
这里的`DesActivity.class`是你希望启动的Activity,`0`作为请求码,通常可视为唯一标识。
5. 设置Latest Event Info:
调用`setLatestEventInfo`方法将`Intent`、标题、内容和`PendingIntent`绑定到`Notification`:
```java
m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知", m_PendingIntent);
```
这里`NotificationDemo.this`是上下文,"Button1"是标题,"Button1通知"是内容。
6. 显示Notification:
最后,使用`NotificationManager`的`notify`方法显示Notification,传入一个唯一的ID:
```java
m_NotificationManager.notify(0, m_Notification);
```
ID用于识别并更新已存在的Notification,如果ID相同,新的Notification会替换旧的。
7. 取消Notification:
当不再需要Notification时,可以通过`cancel`方法移除:
```java
m_NotificationManager.cancel(0);
```
同样,ID用于确定要取消的特定Notification。
除此之外,Android的Notification API随着时间的推移不断演进,现在支持更丰富的样式,如大图通知、自定义视图、Channel管理等。在新版本的Android中,开发者需要创建`NotificationChannel`来管理不同类型的Notification,以提供更好的用户体验和控制。例如:
```java
NotificationChannel channel = new NotificationChannel("channelId", "channelName", NotificationManager.IMPORTANCE_DEFAULT);
m_NotificationManager.createNotificationChannel(channel);
```
然后在创建`Notification`时指定该`channelId`。这些改进使得开发者能够更好地控制通知的呈现方式和用户对其的交互方式。
2020-04-14 上传
2014-04-18 上传
2013-06-07 上传
2020-08-29 上传
2015-12-10 上传
2013-09-14 上传
happyq
- 粉丝: 48
- 资源: 47
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析