Android StatusBar Notification 实现与详解

3星 · 超过75%的资源 需积分: 9 5 下载量 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`的各种属性,以达到最佳的提醒效果。