Android Notification完全指南
4星 · 超过85%的资源 需积分: 25 154 浏览量
更新于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 上传
2013-09-14 上传
2015-12-10 上传
happyq
- 粉丝: 48
- 资源: 47
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析