`
lovelydog
  • 浏览: 91388 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Android Notification详解——创建notification

阅读更多

最近需要给项目添加各种通知,通知一多,再加上各种设备上调试,总是出现各种意想不到的问题,索性把Notification的API Guide全部看了一遍,顺便做点记录。

 

首先简单复习下怎么创建一个Notification。创建通知需要两个比较重要的类:Notification和NotificationManager

 

Notification 类用来定义状态栏通知的各种属性,比如图标、消息、显示通知时是否需要声音、震动等。

NotificationManager 类是一个Android系统的服务,它用来管理所有的通知。

 

 

下面的代码用来创建一个简单的通知:

 

// 获取NotificationManager的引用
NotificationManager mNM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
	
// 创建一个Notification对象
int icon = R.drawagle.notification_icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMills();
Notification notification = new Notification(icon, tickerText, when);
notification.flags |= Notification.DEFAULT_ALL;

// 定义Notification的title、message、和pendingIntent
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!"
Intent notificationIntent = new Intent(this, myClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
	
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

// 通知状态栏显示Notification
private static final int HELLO_ID = 1;
mNM.notify(HELLO_ID, notification);
 

下面详细讨论创建一个Notification需要考虑些什么问题

 

一个通知必须包含如下的内容:

 

  1. 状态栏的图标
  2. 一个title和一个message(如果是自定义的layout,就不需要这项)
  3. PendingIntent,当点击通知时,该Intent会被触发

另外有一些可选的选项:

  1. ticker-text,就是当通知来时,在status bar上滚动的内容
  2. 震动、声音、led灯指示

创建Notification对象需要使用Notification的构造函数

 

Notification notification = Notification(int icon, CharSequence tickerText, long when);
  

使用下面的函数创建PendingIntent

 

PendingIntent contentIntent = PendingIntent.getActivity (Context context, int requestCode, Intent intent, int flags);
  

然后使用下面的函数设置创建好的Notification对象

 

notification.setLatestEventInfo(Context context, CharSequence  contentTitle, CharSequence  contentText, PendingIntent contentIntent);
  

我们可以定义notification的各种属性,比如声音、震动等

为notification添加一个声音:

 

notification.defaults |= Notification.DEFAULT_SOUND; //使用用户设置的默认声音

 或者

notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3"); //使用一个URI指向一个特定的音频文件作为消息声音

 或者

notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6"); //使用系统提供的铃音

 

为notification添加震动:

 

notification.defaults |= Notification.DEFAULT_VIBRATE; //使用用户设置

 或者

long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate; //使用自定义的震动效果
 

为notification添加led指示:

notification.defaults |= Notification.DEFAULT_LIGHTS; //使用用户设置

 或者

notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
notification.flags |= Notification.FLAG_SHOW_LIGHTS; //自定义效果
 

另外其他的属性可以参考Notification的文档 http://developer.android.com/reference/android/app/Notification.html

 

分享到:
评论

相关推荐

    Android应用开发详解

    《Android应用开发详解》 作者:郭宏志 编著 内容简介 本书分为三个部分,包括基础篇、技术篇和应用篇。由浅入深地讲述了Android应用开发的方方面面。 第一篇 基础篇 第1章 Android概述 Android概述,讲述了...

    Android 5.X 新特性详解(五)——Notification

    Google在Android 5.0 上又进一步改进了通知栏,优化了Notification。当长按Notification的时候,会显示消息来源。Notification会有一个从白色到灰色的动画切换效果,最终显示发出这个Notification的调用者。同时,在...

    博客《Uri详解之二——通过自定义Uri外部启动APP与Notification启动》对应源码

    博客《Uri详解之二——通过自定义Uri外部启动APP与Notification启动》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44781557

    android开发入门与实战(下)

    7.8 温馨的提醒——Toast和Notification应用 7.8.1 实例操作演示 7.8.2 实例编程实现 7.9 本章小结 第8章 移动信息仓库——Android的数据存储操作 8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences...

    android开发入门与实战(上)

    7.8 温馨的提醒——Toast和Notification应用 7.8.1 实例操作演示 7.8.2 实例编程实现 7.9 本章小结 第8章 移动信息仓库——Android的数据存储操作 8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences...

    Android典型技术模块开发详解

    2.1 创建Android工程 2.2 HelloAndroid详解 2.2.1 程序结构 2.2.2 代码分析 2.3 权限permission 2.4 LogCat日志调试 2.5 示例练习 2.5.1 登录界面 2.5.2 事件处理 2.6 本章小结 第二篇 Android开发关键组件 第3章 ...

    《Google Android开发入门与实战》.pdf

    7.8 温馨的提醒——toast和notification应用 127 7.8.1 实例操作演示 128 7.8.2 实例编程实现 129 7.9 本章小结 135 第8章 移动信息仓库——android的数据存储操作 136 8.1 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控件架构与自定义控件详解 32 3.1 Android控件架构 33 3.2 View的测量 34 3.3 View的绘制 37 3.4 View Group的测量 38 3.5 View Group的绘制 39 3.6 自定义View 39 3.6.1 对现有控件进行拓展 40...

    Google.Android开发入门与实战

    7.8 温馨的提醒——Toast和Notification应用 7.8.1 实例操作演示 7.8.2 实例编程实现 7.9 本章小结 第8章 移动信息仓库——Android的数据存储操作 8.1 Android数据存储概述 8.2 轻轻地我保护——SharedPreferences...

    Google Android开发入门与实战的代码

    7.8 温馨的提醒——Toast和Notification应用 127 7.8.1 实例操作演示 128 7.8.2 实例编程实现 129 7.9 本章小结 135 第8章 移动信息仓库——Android的数据存储操作 136 8.1 Android数据存储概述 ...

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

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

    android开发资料大全

    android用户界面之Notification教程实例汇总 android用户界面之TextView教程实例汇总 android用户界面之ScrollView教程实例汇总 android用户界面之PopupWindow教程实例汇总 android用户界面之ImageView教程实例汇总 ...

    《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高清版

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

    《Android开发权威指南》 PDF (安卓sdk 2.3)

    第3章 Android程序设计基础、第4章 用户界面开发基础、第5章 控件(Widget)详解、第6章 菜单、第7章 信息提醒(对话框、Toast与Notification)、第8章 数据存储、第9章 Android中的窗口——Activity、第10章 ...

    Android开发权威指南

    第3章 Android程序设计基础、第4章 用户界面开发基础、第5章 控件(Widget)详解、第6章 菜单、第7章 信息提醒(对话框、Toast与Notification)、第8章 数据存储、第9章 Android中的窗口——Activity、第10章 ...

Global site tag (gtag.js) - Google Analytics