`
dengbaoleng
  • 浏览: 1134017 次
文章分类
社区版块
存档分类
最新评论

Android Notification 基础(一)

 
阅读更多

在Android中,基本的Notification就是有事件发生的时候在屏幕顶端的Notificat<wbr>ion bar上显示一个图标。然后拉下Notification bar,点击Notification的项目,会调用相应的程序做处理。比如有新短信,就会出现短信的图标<wbr>,拉下Notification bar,点击图标会调用短信查看程序。</wbr></wbr>

我们先看一下Notification的Sample Code,然后逐行做解说,大致能了解它的基本构成。

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;

...

private void showNotification(Message msg, int id) {
		NotificationManager notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
		Notification notification = new Notification(R.drawable.notiicon, msg
				.getTitle(), System.currentTimeMillis());
		notification.flags = Notification.FLAG_AUTO_CANCEL;
		Intent intent = new Intent(this, MainActivity.class);
		Bundle bundle = new Bundle();
		bundle.putString("info", msg.getInfo());
		intent.putExtras(bundle);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
				| Intent.FLAG_ACTIVITY_NEW_TASK);
		PendingIntent contentIntent = PendingIntent.getActivity(this, id,
				intent, PendingIntent.FLAG_UPDATE_CURRENT);

		notification.setLatestEventInfo(this, msg.getTitle(), msg.getInfo(),
				contentIntent);
		notiManager.notify(id, notification);
	}

首先导入三个类,Notification,NotificationManager,PendingIn<wbr>tent。 值得一提的是PendingIntent,它可以看做是Intent这封信的一个信封。PendingIn<wbr>tent基本上是Intent的包装和描述,对象收到PendingIntent后,可以得到其中的Int<wbr>ent再发出去。</wbr></wbr></wbr>

NotificationManager notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

上面这一句,从系统中获得Notification服务,getSystemService()就是这么用<wbr>,来获得系统服务的。</wbr>

Notification notification = new Notification(R.drawable.notiicon, msg
				.getTitle(), System.currentTimeMillis());
		notification.flags = Notification.FLAG_AUTO_CANCEL;

然后是构造一个Notification,包括三个属性,图标,图标后面的文字,以及Notificati<wbr>on时间部分显示出来的时间,通常使用当前时间。FLAG_AUTO_CANCEL说明Notificat<wbr>ion点击一次就消失。</wbr></wbr>

Intent intent = new Intent(this, MainActivity.class);
		Bundle bundle = new Bundle();
		bundle.putString("info", msg.getInfo());
		intent.putExtras(bundle);
		intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
				| Intent.FLAG_ACTIVITY_NEW_TASK);

上面这部分Code,构造一个Intent,并且放进去一条信息。 FLAG_ACTIVITY_CLEAR_TOP, FLAG_ACTIVITY_NEW_TASK者两个FLAG表示优先寻找已经打开的应用,如果应用没有打<wbr>开那么启动它。</wbr>

PendingIntent contentIntent = PendingIntent.getActivity(this, id,
				intent, PendingIntent.FLAG_UPDATE_CURRENT);

这一句代码把Intent包装在PendingIntent里,this是Context,id是Pend<wbr>ingIntent的标志,如果id相同会被认为是一个。FLAG_UPDATE_CURRENT是指后来<wbr>的PendingIntent会更新前面的。</wbr></wbr>

notification.setLatestEventInfo(this, msg.getTitle(), msg.getInfo(),
				contentIntent);
		notiManager.notify(id, notification);

最后这两行添加状态栏的详细信息,包装PendingIntent给Notification,最后发送N<wbr>otification。</wbr>


分享到:
评论

相关推荐

    Android Notification 基础

    Android Notification 基础

    Notification使用详解之一:基础应用

    在消息通知时,我们经常用到...当有消息通知时,状态栏会显示通知的图标和文字,通过下拉状态栏,就可以看到通知信息了,Android这一创新性的UI组件赢得了用户的一致好评,就连苹果也开始模仿了。

    Android高手进阶教程与Android基础教程

    Android基础教程之----Android状态栏提醒(Notification,NotificationManager)的使用.doc Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!.doc Android基础教程之----动态更改屏幕方向的简单例子...

    android-notification-log:Android的通知日志

    该框架已被用作进行多个野外和实验室研究的基础,并已被超过60,000个用户下载。 我们解释了框架的要求,体系结构和过去的应用场景。 方案的范围从启用对移动通知的反思到多设备环境中的丰富体验。 建筑学 专案 通知...

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

    用户界面是android开发中最基础的功能,也是与用户交互最直接的方式。通过学习安卓开发这段时间,很容易找到关于android的各种UI常见元素的教程与实例.现在特地总结了Android用户界面之Notification 的相关信息,分...

    android一步一步最基础学习__新手

    第十九讲:Android Notification的使用入门 第二十讲:Content Provider 使用入门 第二十一讲:Broadcast Receiver 使用入门 第二十二讲:AIDL和远程Service调用 第二十三讲:Drawable使用入门 第二十四讲...

    Android应用开发详解

    Android开发基础,讲述了Android开发环境的搭建、Android常用工具的使用和第一个Android应用程序的开发 第二篇 技术篇 第3章 Android中的资源访问 Android 中的资源访问,讲述了如何定义和访问Android中的外部...

    android开发揭秘PDF

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    《Android开发案例驱动教程》

    3章 第一个Android程序 19 第4章 Android UI基础 58 第5章 UI基础控件 79 第6章 UI高级控件 105 第7章 UI布局 151 第8章 多线程 189 第9章 Activity和Intent 219 第10章 Android数据存储 248 第11章 Content ...

    android开发基础

    2.Android项目的建立 3.Android用户界面UI元素之...9.Android用户界面UI元素之对话框(Dialog)和通知(Notification) 10.Android用户界面UI元素之Animation 11.Android用户界面UI元素之Intent 第六讲Activity生命周期

    《Android开发案例驱动教程》源码

    3章 第一个Android程序 19 第4章 Android UI基础 58 第5章 UI基础控件 79 第6章 UI高级控件 105 第7章 UI布局 151 第8章 多线程 189 第9章 Activity和Intent 219 第10章 Android数据存储 248 第11章 Content ...

    新版Android开发教程.rar

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

    Android高级编程--源代码

    因此,对Android感兴趣的开发人员都把Google在2008年发布Android这一举措作为移动技术发展史上的一个非常令人期待的重大事件。  由于Android构建在开源代码的框架之上,而且提供了强大的SDK库和开放的理念,所以它...

    Android基础知识详解

    Notification 38 对话框 42 一、带三个按钮的对话框 42 二、简单列表对话框、单选列表对话框、多选列表对话框 44 三、水平进度对话框和圆形进度对话框 47 四、自定义对话框 49 Menu菜单 52 选项菜单 52 上下文菜单 ...

    Android高薪之路:Android程序员面试宝典 李宁

    4 2 2 通知 Notification 4 3 菜单 第5章 文件存储 5 1 SharedPreferences 5 2 流文件 5 3 XML存储 5 4 JSON存储 第6章 数据库 6 1 SQLite基础知识 6 2 SQLite 函数 6 2 1 核心函数 6 2 2 日期和时间函数 6 2 3 ...

    android开发入门与实战(下)

    1.5 更上一层楼——加入Android开发社区 1.6 本章小结 第2章 工欲善其事 必先利其器——搭建Android开发环境 2.1 开发Android应用前的准备 2.1.1 Android开发系统要求 2.1.2 Android软件开发包 2.1.3 其他注意事项 ...

    《Android应用开发揭秘》附带光盘代码.

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    Android应用开发揭秘pdf高清版

    《Android应用开发揭秘》内容全面,不仅详细讲解了Android框架、Android组件、用户界面开发、游戏开发、数据存储、多媒体开发和网络开发等基础知识,而且还深入阐述了传感器、语音识别、桌面组件开发、Android游戏...

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

    最底层的是一个 Linux Kernel,加载了几个移动设备必要的系统驱动(这么说来 Android 基础系统是要以 GPL 发布了?不知道 34 家厂商的硬件开发商们是怎么样想的);上面是类库和 Runtime,绿色的类库部分可以看 到...

    android开发资料大全

    Android数据库最基础的一个例子(本人已测试,可以运行) 为launcher添加一个仿Mac的dock(附源码) 使用Gallery实现Tab 仿QQ--tab切换动画实例 Android 小项目之---猜扑克牌游戏 (附源码) fleep滑动切换tab(切换...

Global site tag (gtag.js) - Google Analytics