`
seara
  • 浏览: 648676 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Android系列教程(1):Notification 与状态栏信息

阅读更多

本文为《Android/OPhone 开发完全讲义》的内容连载,如需转载,请注明作者和出处,谢谢!

源代码下载

Notification Toast 都可以起到通知、提醒的作用。但它们的实现原理和表现形式却完全不一样。 Toast 其实相当于一个组件( Widget )。有些类似于没有按钮的对话 框。而 Notification 是显示在屏幕上方状态栏中的信息。还有就是 Notification 需要用 NotificationManager 来管理,而 Toast 只需要简单地创建 Toast 对象即可。

下面来看一下创建并显示一个 Notification 的步骤。创建和显 示一个 Notification 需要如下 5 步:

1. 通过 getSystemService 方法获得一个 NotificationManager 对象。

2. 创建一个 Notification 对象。每一个 Notification 对应一个 Notification 对象。在这一步需要设置显示在屏幕上方状态栏的通知消息、通知消息前方的图像资源 ID 和发出通知的时间。一般为当前时间。

3. 由于 Notification 可以与应用程序脱离。也就是说,即使应用程序被关闭, Notification 仍然会显示在状态栏 中。当应用程序再次启动后,又可以重新控制这些 Notification 。如清除或替换它们。因此,需要创建一个 PendingIntent 对象。该对象由 Android 系统负责维护,因此,在应用程序关闭后,该对象仍然不会被释放。

4. 使用 Notification 类的 setLatestEventInfo 方法设置 Notification 的详细信息。

5. 使用 NotificationManager 类的 notify 方法显示 Notification 消息。在这一步需要指定标识 Notification 的唯一 ID 。这个 ID 必须相对于同一个 NotificationManager 对象是唯一的,否则就会覆盖相同 ID Notificaiton

心动不如行动,下面我们来演练一下如何在状 态栏显示一个 Notification ,代码如下:

上面的 5 行代码正好对应创建和显示 Notification 5 步。在这里要解释一下的是 notify 方法的第 1 个参数。这个参数实际上表示了 Notification ID 。是一个 int 类型的值。为了使这个值唯一,可以使用 res 目录中的某些资源 ID 。例如,在上面的代码中使用了当前 Notification 显示的图像对应的 资源 ID R.drawable.icon )作为 Notification ID 。当然,读者也可以使用其他的值作为 Notification ID 值。

由于创建和显示多个 Notification 的代码类似,因 此,在本节的例子中编写了一个 showNotification 方法来显示 Notification ,代码如下:


下面的代码使用 showNotification 方法显示了 3 Notification 消息。



其中第 2 个和第 3 Notification 使用的是同一个 ID R.drawabgle.why ),因此,第 3 Notification 会覆盖第 2 Notification 在显示 Notification 时还可以设置显示通 知时的默认发声、震动和 Light 效果。要实现这个功能需要设置 Notification 类的 defaults 属性,代码如下:


注意:设置默认发声、震动和 Light 的方法是 setDefaults 。该 方法与 showNotification 方法的实现代码基本相同,只是在调用 notify 方法之前需要设置 defaults 属性( defaults 属性必须在 调用 notify 方法之前调用,否则不起作用)。在设置默认震动效果时还需要在 AndroidManifest.xml 文件中通过 <uses-permission> 标签设置 android.permission.VIBRATE 权限。

如果要清除某个消息,可以使用 NotificationManager 类 的 cancel 方 法,该方法只有一个参数,表示要清除的 Notification ID 。使用 cancelAll 可以清除当前 NotificationManager 对象中的所有 Notification

运行本节的例子,单击屏幕上显示 Notification 的按钮,会显示如 图1 所示的消息。每一个消息会显示一会,然后就只显示整个 Android 系统(也包括其他应用程序) 的 Notification (只显示图像部分)。如图2 所示。如果将状态栏拖下来,可以看 到 Notification 的详细信息和发出通知的时间(也就是 Notification 类的构造方法的第 3 个参数值),如图3 所 示。当单击【清除通知】按钮,会清除本应用程序显示的所有 Notification ,清除后的效果如图4 所示。

图1

图2

图3

图4

分享到:
评论

相关推荐

    Android实现Notification的通知栏常驻.zip

    在Android系统中,Notification是一种重要的用户界面元素,用于在状态栏显示应用的提醒或消息。当用户无法直接与应用交互时,例如手机锁屏或在其他应用中,Notification可以帮助用户了解应用的状态并进行相应的操作...

    android用户界面之Notification教程实例汇总

    - **内容概述**: 该文章属于一个系列教程的一部分,重点讲述了Notification在Android开发中的作用及其基本使用方法。 **12. 解读Notification** - **链接**: [http://www.apkbus.com/android-19156-1-1.html]...

    Android、教程<经典> 10 Android通用应用

    6. **通知(Notification)**:Android的通知系统允许应用在状态栏显示提醒。了解如何创建、管理和自定义通知,是提供及时信息和保持用户互动的重要手段。 7. **异步处理**:Android应用的UI线程不能进行耗时操作,...

    黑马程序员Android视频教程

    - **状态栏与导航栏**:根据不同的Android版本,了解如何处理状态栏和导航栏的变化。 - **自定义View**:学习如何扩展View类来创建自定义控件,满足特殊的设计需求。 #### 五、数据存储方式 - **SharedPreferences*...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android移动应用开发基础教程(微课版)习题答案1

    **不受运营商限制**:与某些封闭系统不同,Android 不受特定运营商的控制,用户可以自由安装和更新应用。\n3. **丰富的硬件选择**:Android 支持多种设备,包括不同品牌和型号的手机、平板电脑等。\n4. **开发不受...

    notification 使用宝典

    Notification通常出现在状态栏中,可以是简单的文本消息,也可以包含图标、扩展信息以及可操作的动作。 首先,我们来详细了解一下`Notification`类。`Notification`是Android系统提供的一个类,用于封装要显示在...

    浙江大学 android实验室教程

    10. **通知(Notification)**:通知系统能够让应用在状态栏显示消息,即使用户不在应用中也能接收到重要信息。 【高级主题】 1. **多线程与异步处理**:Android应用的主线程负责UI更新,所以需要在其他线程中执行...

    android案例教程

    11. **通知(Notifications)**:Android的通知系统允许应用在状态栏中向用户发送消息。案例中可能会涉及不同类型的Notification构建。 12. **网络通信**:使用HttpURLConnection、OkHttp或者Retrofit进行网络请求,...

    android 学习精要

    16. **Notification**:通知用于在状态栏提醒用户应用的重要事件,即使应用不在前台运行。 17. **Fragment**:Fragment是Android 3.0引入的新概念,它可以在Activity中动态添加和移除,使得UI适应不同屏幕尺寸和...

    Android UI基础教程pdf

    8. **对话框和通知**:Android提供了多种对话框类型,如警报对话框(AlertDialog)、进度对话框(ProgressDialog)等,以及通知(Notification)系统,用于在状态栏显示消息。 9. **自定义控件**:当标准组件无法...

    Android中文教程

    7. **服务与通知**:Service组件用于在后台执行长时间运行的任务,而Notification则用于在状态栏显示消息,提醒用户应用的活动。掌握这两者能提升应用的后台运行能力。 8. **高级特性**:Android还包括许多高级特性...

    Android开发基础教程整理版

    通知(Notification)则可以在状态栏显示消息,即使应用在后台也能与用户交互。 11. **权限管理**:Android 6.0(API 23)引入了运行时权限,应用需要在运行时请求敏感权限,如访问联系人、位置等。 12. **Android...

    Android应用开发案例教程(AndroidStudio版)_教案.rar

    7. **通知与BroadcastReceiver**:通过Notification,应用可以在状态栏展示消息,即使应用不在前台运行。BroadcastReceiver则允许应用监听系统或自定义广播事件,实现被动响应。 8. **网络编程**:Android应用常常...

    传智播客_Andorid_Android项目手机卫士视频video_day03视频

    7. **通知与提醒**:为了及时通知用户安全状态,开发者需要熟悉Notification API,创建和管理通知,以及处理用户的交互。 8. **权限请求流程**:在Android中,合理引导用户授权是关键。开发者需掌握如何在合适的...

    实现自定义的弹出通知视图(Notification)-定制颜色、图标等

    `141358qbl1vplz62hp9qh2.gif`、`141357cc9kb9cbbt7l9zd1.gif`和`141357l8rry8rb884rm7dy.gif`可能是展示自定义通知动画或状态的GIF图像。`JavaApk源码说明.txt`可能包含了关于如何阅读和理解源代码的指导,而`千万...

    Android应用程序开发教程PDF电子书完整版、Android开发学习教程

    • 通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。 4 • 活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。 程序库 Android 包含一些 ...

Global site tag (gtag.js) - Google Analytics