`
zhouxiaoli521
  • 浏览: 554132 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Notification 基础

阅读更多

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

 

我们先看一下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,PendingIntent。 值得一提的是PendingIntent,它可以看做是Intent这封信的一个信封。PendingIntent基本上是Intent的包装和描述,对象收到PendingIntent后,可以得到其中的Intent再发出去。

 

NotificationManager notiManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

 

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

 

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

 

 

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

 

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表示优先寻找已经打开的应用,如果应用没有打开那么启动它。

 

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

 

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

 

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

 

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

 

 

http://community-china.developer.motorola.com/t5/%E4%B8%BA%E6%91%A9%E6%89%98%E7%BD%97%E6%8B%89%E6%89%8B%E6%9C%BA%E5%BC%80%E5%8F%91Android%E5%BA%94%E7%94%A8/Android-Notification-%E5%9F%BA%E7%A1%80/td-p/171

分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

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

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

    android开发基础

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

    android开发揭秘PDF

    第3章 Android程序设计基础 3.1 Android程序框架 3.1.1 Android项目目录结构 3.1.2 Android应用解析 3.2 Android的生命周期 3.3 Android程序U设计 3.4 小结 第4章 用户界面开发 4.1 用户界面开发详解 4.1.1 用户...

    Android应用开发详解

    Broadcast Receiver Android 广播事件处理 Broadcast Receiver,讲述了广播事件处理机制、Notification、NotificationManager和AlarmManager的使用 第9章 Android中的数据存取 Android中的数据存取,讲述了Android...

    《Android开发案例驱动教程》

    第4章 Android UI基础 58 第5章 UI基础控件 79 第6章 UI高级控件 105 第7章 UI布局 151 第8章 多线程 189 第9章 Activity和Intent 219 第10章 Android数据存储 248 第11章 Content Provider 302 第12章 多媒体开发 ...

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

    第4章 Android UI基础 58 第5章 UI基础控件 79 第6章 UI高级控件 105 第7章 UI布局 151 第8章 多线程 189 第9章 Activity和Intent 219 第10章 Android数据存储 248 第11章 Content Provider 302 第12章 多媒体开发 ...

    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开发教程.rar

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

    Android高级编程--源代码

    CruiseYoung提供的带有详细书签的电子书籍目录 ... 该资料是《Android高级编程》的源代码 ...本书的内容和示例提供了如何使用当前SDK来编写优秀的移动程序所需要的基础知识,同时也保持了快速适应未来版本...

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

     第3章 Android程序设计基础  3.1 Android程序框架  3.1.1 Android项目目录结构  3.1.2 Android应用解析  3.2 Android的生命周期  3.3 Android程序U设计  3.4 小结  第4章 用户界面开发  4.1 用户界面开发...

    Android开发案例驱动教程 配套代码

    《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...

    Android基础知识详解

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

    Android应用开发揭秘pdf高清版

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

    android开发入门与实战(下)

    3.1 AndroidSDK基础 3.2 深入探寻AndroidSDK的密码 3.2.1 AndroidSDK目录结构 3.2.2 android.jar及内部结构 3.2.3 SDK文档及阅读技巧 3.2.4 先来热热身——AndroidSDK例子解析 3.2.5 SDK提供的工具介绍 3.3 Android...

    《Android应用开发揭秘》源码

     第3章 Android程序设计基础  3.1 Android程序框架  3.1.1 Android项目目录结构  3.1.2 Android应用解析  3.2 Android的生命周期  3.3 Android程序U设计  3.4 小结  第4章 用户界面开发  4.1 用户界面开发...

Global site tag (gtag.js) - Google Analytics