Android Notification 实例解析与代码展示
133 浏览量
更新于2024-09-01
收藏 84KB PDF 举报
"这篇文档详细解析了Android通知机制,包括`Notification`的使用方法和实例代码,适合开发者学习如何在Android应用中实现通知功能。"
Android通知`Notification`是系统提供的一种向用户显示非阻塞信息的方式,它通常出现在状态栏,并且可以在通知中心查看和交互。下面将对Android通知`Notification`进行详细讲解。
### 1. 使用Builder模式创建
`Notification`通常使用`NotificationCompat.Builder`来构建,这是Android Support Library提供的兼容性类,支持低版本API。例如:
```java
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
```
### 2. 设置`smallIcon`
每个`Notification`都需要一个`smallIcon`,显示在状态栏中,一般使用应用的图标:
```java
builder.setSmallIcon(R.mipmap.ic_launcher);
```
### 3. 设置内容信息
可以通过以下方法设置`Notification`的主要内容:
- `setContentTitle`: 显示通知的标题
- `setContentInfo`: 显示额外的信息,如“3条未读消息”
- `setContentText`: 显示通知的详细文本
- `setWhen`: 设置通知的时间戳,通常显示为通知发出的时间
```java
builder.setContentTitle("新消息")
.setContentInfo("3条")
.setContentText("来自朋友的问候")
.setWhen(System.currentTimeMillis());
```
### 4. 设置默认效果与标志
使用`setDefaults`可以设置通知的默认行为,如声音、振动和灯光:
```java
builder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE);
```
通过`setFlags`可以设置通知的特性,如是否可清除:
```java
builder.setFlag(Notification.FLAG_AUTO_CANCEL, true);
```
### 5. 发送通知
发送`Notification`需要`NotificationManager`,通过`getSystemService`获取:
```java
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
int notificationId = 1;
manager.notify(notificationId, builder.build());
```
### 6. 清除通知
可以使用`NotificationManager`的`cancel`方法清除特定通知,或`cancelAll`清除所有通知:
```java
manager.cancel(notificationId);
manager.cancelAll();
```
### 自定义通知
对于更复杂的布局,可以使用`RemoteViews`创建自定义视图,并通过`setContent`设置到`Notification`中:
```java
RemoteViews customView = new RemoteViews(getPackageName(), R.layout.custom_notification);
builder.setContent(customView);
```
点击事件可以通过`PendingIntent`来处理:
```java
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
builder.setContentIntent(pendingIntent);
```
以上就是Android通知`Notification`的基本使用方法和实例代码。在实际开发中,可以根据需求调整和扩展,以实现丰富的用户体验。为了确保低版本API的兼容性,记得引入`v4`库并使用`NotificationCompat`类。
2014-04-09 上传
495 浏览量
2020-09-01 上传
2021-01-04 上传
2021-01-04 上传
点击了解资源详情
点击了解资源详情
2021-01-20 上传
2013-09-14 上传
weixin_38663007
- 粉丝: 4
- 资源: 904
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库