本文为《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信息图标及提示,相信大家对这个功能已经不陌生了,手机中安装的APP,一般都会在后台运行,时不时会在手机顶部的状态栏中显示应用的图标,滑出状态栏会看到详细的信息...
这几天做一个小软件在API28(Android 9.0)的模拟器上测试时,发现通知栏无效,经过一番查询,了解到:API26(Android 8.0)以后,引入了**通知渠道(Notification Channels)**这么一个东西来帮助用户管理通知。...
Android实现Notification的通知栏常驻.zip
Unity3D教程:Notification Center的简单使用与案例说明2
开发工具是studio,里面的状态栏通知包括:默认的状态栏通知和带进度条的自定义通知,看到网上很多朋友发现状态栏下载会一个劲刷状态栏,我就做了一个,希望能帮助到大家,里面有详细的解释,(非大神,哪有不足请指教...
Android高级应用源码-状态栏通知小图标,notification通知.zip
实现android notification的默认形式和自定义
《Android高薪之路:Android程序员面试宝典》目录: 第1章 Android入门 1 1 关于Android的非技术问题 1 1 1 为什么看好 Android 1 1 2 以前是否从事过Android的工作 做过哪些工作 1 1 3 你做的最复杂的界面是什么 1 ...
android 状态栏的图标与文字提醒 NotificationManager与Notification
状态栏通知小图标notification通知.rar
Android应用源码之实现Notification的通知栏常驻.zip
本文实例讲述了Android开发之Notification手机状态栏通知用法。分享给大家供大家参考,具体如下: 简介: 通知是显示在手机状态栏的通知(PS:就是手机上方,显示时间啥的那一栏) 用法: Notification添加了Builder...
android消息通知栏Notification
Android 使用Notification自定义通知栏显示。自定义系统状态栏通知类NotificationExtend,也可以手动更新状态栏。依据此项目可以做成线程接受,或者广播接受自动更新。我博客网址: ...
在使用手机时,当有未接来电或者是新短消息时,手机会给出相应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。Android也提供了用于处理此类信息的类,他们是Notification和NotificationManager。其中,...
此demo为状态栏通知小图标,notification通知,代码较为简单,可供参考
在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息通常会显示到手机屏幕的状态栏上。 Android也提供了用于处理这些信息的类,它们是Notification和NotificationManager。其中,...
修改android 2.3版本Notification通知栏不显示的Bug Android 服务端下载 Notification通知栏 断点下载
Android应用源码之实现Notification的通知栏常驻.rar
Android基础教程之----Android状态栏提醒(Notification,NotificationManager)的使用.doc Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!.doc Android基础教程之----动态更改屏幕方向的简单例子...