最近需要给项目添加各种通知,通知一多,再加上各种设备上调试,总是出现各种意想不到的问题,索性把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需要考虑些什么问题
一个通知必须包含如下的内容:
- 状态栏的图标
- 一个title和一个message(如果是自定义的layout,就不需要这项)
- PendingIntent,当点击通知时,该Intent会被触发
另外有一些可选的选项:
- ticker-text,就是当通知来时,在status bar上滚动的内容
- 震动、声音、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开发手册——API函数详解.zip_安卓API"资料深入浅出地阐述了Android API的各种函数用法,是Android应用开发者的宝贵资源。 首先,Android API分为多个层次,最基础的是Linux内核,提供了操作系统核心...
《Android应用开发详解》 作者:郭宏志 编著 内容简介 本书分为三个部分,包括基础篇、技术篇和应用篇。由浅入深地讲述了Android应用开发的方方面面。 第一篇 基础篇 第1章 Android概述 Android概述,讲述了...
Google在Android 5.0 上又进一步改进了通知栏,优化了Notification。当长按Notification的时候,会显示消息来源。Notification会有一个从白色到灰色的动画切换效果,最终显示发出这个Notification的调用者。同时,在...
《安卓Android源码详解——深度探索移动开发技术》 安卓Android源码是移动开发领域的核心研究对象,对于任何想要深入理解安卓系统运行机制或者进行定制化开发的工程师来说,掌握Android源码至关重要。本篇文章将从...
第十九讲:AndroidNotification的使用入门** - **链接**: [http://www.apkbus.com/android-725-1-1.html](http://www.apkbus.com/android-725-1-1.html) - **内容概述**: 这篇文章适合初学者阅读,它从零开始...
Android推送通知服务(Demo)详解 在移动应用开发中,推送通知是不可或缺的功能,它能够实时地将服务器端的信息推送给用户,即使应用在后台运行或者完全关闭。本篇文章将详细解析“Android Push Notification Service...
这篇博客《详解Dialog——基础元素构建》的源码深入探讨了如何创建和自定义Dialog,提供了丰富的实践案例。以下是根据博客内容和源码解析的一些关键知识点: 1. **Dialog基本使用**: Android中的Dialog是基于...
7. **Android SDK**:源码会使用Android SDK中的各种API,如SharedPreferences、Notification、Intent等,学习源码有助于熟悉这些基础工具的使用。 8. **版本控制**:源码可能来自某个版本控制系统(如Git),通过...
"经典的Android项目——SMSPopup.zip" 这个标题表明我们讨论的是一个基于Android平台的开源项目,名为SMSPopup。这个项目很可能是用来处理短信通知的,因为"SMS"通常指的是手机短信服务,而"Popup"则暗示了它可能...
博客《Uri详解之二——通过自定义Uri外部启动APP与Notification启动》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/44781557
这个压缩包"安卓Android源码——绝对给力的源码,在线音乐播放器完整项目.rar"提供了完整的源代码,对于学习和理解Android应用程序开发,特别是音乐播放器的实现,具有极大的价值。以下是基于这个项目的一些关键知识...
"安卓Android源码——监控别人的行踪.zip"这个标题表明这是一个与安卓系统(Android)相关的源码项目,特别地,它涉及到监控他人位置信息的实现。这通常意味着该源码可能包含了一些定位、跟踪或者移动设备管理的代码...
《Android通知机制详解——基于"Notification.zip"演示应用》 在Android系统中,通知(Notification)是应用与用户交互的重要手段之一,它能够在状态栏显示提醒,即使用户不在使用特定应用时也能接收到信息。本篇...
《Android API详解——深入解析Android开发核心》 在Android应用开发领域,理解并熟练掌握Android API是至关重要的。"Android-API.rar"是一个压缩包,其中包含了一份名为"Android API.chm"的离线帮助文档,这是一份...
OHA成员包括移动运营商、手机制造商、半导体公司、软件企业和商业公司,共同致力于构建基于Linux的开源操作系统——Android。 ### Android操作系统概览 - **Android的定义**:Android最初由Google开发,后由OHA...
《Android开发详解——Java编程指南》 Android是Google推出的一款开源移动操作系统,广泛应用于智能手机、平板电脑以及智能电视等设备。对于开发者来说,掌握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章 ...
**Android-21 Android SDK Platforms 21 (Android 5.0) 知识点详解** Android 5.0(代号Lollipop)是Google在2014年推出的一个重大更新,它对Android系统进行了许多重要的改进和优化,不仅提升了用户体验,也增强了...
《Android SDK开发包详解——基于Android 4.2 (API Level 17)》 Android SDK(Software Development Kit)是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程序框架 ...