Android StatusBar Notification 实现与详解
3星 · 超过75%的资源 需积分: 9 9 浏览量
更新于2024-09-15
收藏 34KB DOC 举报
"这篇文章主要讲解了如何在Android中使用StatusBar,特别是如何利用Notification进行状态栏信息展示和系统图标添加。"
在Android开发中,StatusBar是一个非常重要的组件,它位于屏幕顶部,显示系统状态和应用程序的通知。`StatusBar`不仅提供时间、电量等基本信息,还能通过`Notification`向用户传达应用的重要事件。`Notification`是一种非侵入性的提醒方式,即使应用不在前台运行,也能让用户了解应用的状态更新。
1. `Notification`的使用
`Notification`主要用于那些在后台运行的组件(如Broadcast Receiver、Service或不活动的Activity)与用户交互,告知用户有新的事件或消息。以下是如何创建和使用`Notification`的步骤:
步骤一:获取`NotificationManager`实例
`NotificationManager`是管理`Notification`的核心类,它可以显示、更新或取消`Notification`。通常,我们通过以下代码获取`NotificationManager`实例:
```java
NotificationManager nm;
String service = Context.NOTIFICATION_SERVICE;
nm = (NotificationManager) this.getSystemService(service);
```
`NotificationManager`提供了五个主要方法:
- `cancel(int id)`:取消指定ID的通知。
- `cancel(String tag, int id)`:取消特定tag和ID的通知。
- `cancelAll()`:取消所有通知。
- `notify(int id, Notification notification)`:显示一个通知。
- `notify(String tag, int id, Notification notification)`:显示带有tag和ID的通知。
步骤二:创建并设置`Notification`属性
`Notification`对象需要设置多个属性,如图标、声音、提示文字、振动模式、显示时间以及点击后的Intent等。例如:
```java
Notification n = new Notification();
n.icon = R.drawable.notification_icon; // 设置图标
n.sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // 设置提示音
n.tickerText = "新消息"; // 设置提示文字
n.vibrate = new long[]{100, 200, 300, 400, 500, 400, 300, 200, 100}; // 设置振动模式
n.when = System.currentTimeMillis(); // 设置通知时间
n.contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0); // 设置点击后跳转的Activity
```
此外,`Notification`还有一些特殊标志,如:
- `FLAG_NO_CLEAR`:设置此标志后,通知不会显示清除按钮,用户无法直接清除该通知。
- `FLAG_ONGOING_EVENT`:设置此标志后,通知会持续显示在状态栏,直到手动清除或应用处理。
2. 添加状态栏系统图标
在Android中,应用可以通过`StatusBar`显示自定义的系统图标。通常,这些图标代表应用的某种状态,如网络连接、同步进程等。系统图标需遵循Android的设计指南,并在`Notification`中通过`setSmallIcon()`方法设置。
```java
n.setSmallIcon(R.drawable.system_icon); // 设置状态栏小图标
```
`StatusBar`和`Notification`是Android应用与用户进行非即时交互的关键途径,正确使用它们可以提升用户体验,确保用户不会错过任何重要的应用事件。开发者需要根据具体需求,合理设置`Notification`的各种属性,以达到最佳的提醒效果。
爱上无边的云
- 粉丝: 0
- 资源: 5
最新资源
- DSP芯片的介绍与产品应用
- 通信中常用的信号处理
- matlab编程(中文版)
- JDBC连接各种数据库经验技巧集萃
- Java精华积累每个初学者都应该搞懂的问题
- QCon 2009 beijing全球企业开发大会ppt:17.吕建伟--实效项目管理
- 单片机c语言轻松入门
- Struts in action
- QCon 2009 beijing全球企业开发大会ppt:12.Hadoop取舍之间--高性能、高流量和多数据中心互联网应用架构设计
- 手机开发总结WM的一些要注意的地方
- xml教程:轻松搞定XML
- 用Visual C++ 6.0设计媒体播放器
- MySQL安装方法.docx
- QCon 2009 beijing全球企业开发大会ppt:8.豆瓣网技术架构的发展历程
- Visual C++ MFC 简明教程
- 模拟电子技术 高等教育出版社 第三版 课后答案