- 浏览: 114778 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (98)
- java (27)
- jms (2)
- jta (0)
- 性能调优及内存分析 (4)
- 设计模式 (14)
- 框架 (6)
- 其它 (9)
- job (1)
- maven (1)
- 服务器 (2)
- 分布式 (3)
- ibatis (1)
- linux (0)
- mysql (0)
- 并发编程 (0)
- java多线程 (2)
- 前端跨域 (1)
- 线程dump分析 (0)
- velocity (0)
- 数据库 (2)
- 协议 (0)
- 监控 (0)
- 开源软件 (2)
- 算法 (0)
- 网络 (1)
- spring (1)
- 编码 (0)
- 数据结构 (0)
- HTable和HTablePool使用注意事项 (0)
- opencms (0)
- android (16)
- 操作系统 (2)
- top (0)
最新评论
-
hold_on:
@Override public boolea ...
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片) -
achersnake:
123
Servlet中listener(监听器)和filter的总结 -
angel243fly:
我用了这个方法,还是报同样的错误,还有什么建议吗?
eclipse提示CreateProcess error=87错误的解决方法
http://blog.csdn.net/dadahacker/article/details/5742174
当用户有没有接到的电话的时候,Android顶部状态栏里就会出现一个小图标。提示用户有没有处理的快讯,当拖动状态栏时,可以查看这些快讯。Android给我们提供了NotificationManager来管理这个状态栏。可以很轻松的完成。
如果要添加一个Notification,可以按照以下几个步骤
1:获取NotificationManager:
NotificationManager m_NotificationManager=(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
2:定义一个Notification:
Notification m_Notification=new Notification();
3:设置Notification的各种属性:
//设置通知在状态栏显示的图标
m_Notification.icon=R.drawable.icon;
//当我们点击通知时显示的内容
m_Notification.tickerText="Button1 通知内容.....";
通知时发出的默认声音
m_Notification.defaults=Notification.DEFAULT_SOUND;
//设置通知显示的参数
Intent m_Intent=new Intent(NotificationDemo.this,DesActivity.class);
PendingIntent m_PendingIntent=PendingIntent.getActivity(NotificationDemo.this, 0, m_Intent, 0);
m_Notification.setLatestEventInfo(NotificationDemo.this, "Button1", "Button1通知",m_PendingIntent );
//这个可以理解为开始执行这个通知
m_NotificationManager.notify(0,m_Notification);
4:既然可以增加同样我们也可以删除。当然是只是删除你自己增加的。
m_NotificationManager.cancel(0);
这里的0是一个ID号码,和notify第一个参数0一样。
这也就完成了,添加删除工作。
这里我们还是一个Demo来掩饰我们的操作。
1:新建一个工程NotificationDemo。
2:添加一个Activity:DesActivity,注意需要在Manifest.xml中声明
3:NotificationDemo中的Laytout文件很简单就是定义一个Button.其代码文件如下:
- package com.rocky.studio.ch4221;
- import android.app.Activity;
- import android.app.Notification;
- import android.app.NotificationManager;
- import android.app.PendingIntent;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class NotificationDemo extends Activity {
- Button m_Button1;
- TextView m_txtView;
- NotificationManager m_NotificationManager;
- Notification m_Notification;
- Intent m_Intent;
- PendingIntent m_PendingIntent;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- m_NotificationManager=(NotificationManager)this .getSystemService(NOTIFICATION_SERVICE);
- m_Button1=(Button)this .findViewById(R.id.Button01);
- //点击通知时转移内容
- m_Intent=new Intent(NotificationDemo. this ,DesActivity. class );
- m_PendingIntent=PendingIntent.getActivity(NotificationDemo.this , 0 , m_Intent, 0 );
- m_Notification=new Notification();
- m_Button1.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) {
- // TODO Auto-generated method stub
- //设置通知在状态栏显示的图标
- m_Notification.icon=R.drawable.icon;
- //当我们点击通知时显示的内容
- m_Notification.tickerText="Button1 通知内容....." ;
- //通知时发出的默认声音
- m_Notification.defaults=Notification.DEFAULT_SOUND;
- //设置通知显示的参数
- m_Notification.setLatestEventInfo(NotificationDemo.this , "Button1" , "Button1通知" ,m_PendingIntent );
- //这个可以理解为开始执行这个通知
- m_NotificationManager.notify(0 ,m_Notification);
- }});
- }
- }
4:修改DesActivity 的源文件,代码如下:它做的事情就是取消之前添加的Notification
- package com.rocky.studio.ch4221;
- import android.app.Activity;
- import android.app.NotificationManager;
- import android.os.Bundle;
- public class DesActivity extends Activity {
- NotificationManager m_NotificationManager;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super .onCreate(savedInstanceState);
- this .setContentView(R.layout.main2);
- //启动后删除之前我们定义的
- m_NotificationManager=(NotificationManager)this .getSystemService(NOTIFICATION_SERVICE);
- m_NotificationManager.cancel(0 );
- }
- }
代码也很简单。可以查看Notification , NotificationMananger 这两个类来学习前后左右。
下面是一篇文章,对Notification ,NotificationManager这两个类有详细的说明介绍,特借鉴一下。
NoticificationManager很容易可以放在状态栏,也很容易实现从statusbar进入程序 中,
NoticificationManager中通过intent执行此程序的activity就可以了
NoticificationManager状态栏操作
NotificationManager(通知管理器):
NotificationManager负责通知用户事件的发生.
NotificationManager有三个公共方法:
1. cancel(int id) 取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走.
2. cancelAll() 取消以前显示的所有通知.
3. notify(int id, Notification notification) 把通知持久的发送到状态条上.
//初始化NotificationManager:
NotificationManager nm =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification代表着一个通知.
Notification的属性:
audioStreamType 当声音响起时,所用的音频流的类型
contentIntent 当通知条目被点击,就执行这个被设置的Intent.
contentView 当通知被显示在状态条上的时候,同时这个被设置的视图被显示.
defaults 指定哪个值要被设置成默认的.
deleteIntent 当用户点击"Clear All Notifications"按钮区删除所有的通知的时候,这个被设置的Intent被执行.
icon 状态条所用的图片.
iconLevel 假如状态条的图片有几个级别,就设置这里.
ledARGB LED灯的颜色.
ledOffMS LED关闭时的闪光时间(以毫秒计算)
ledOnMS LED开始时的闪光时间(以毫秒计算)
number 这个通知代表事件的号码
sound 通知的声音
tickerText 通知被显示在状态条时,所显示的信息
vibrate 振动模式.
when 通知的时间戳.
将Notification发送到状态条上:
Notification notification = new Notification();
Notification的设置过程……..
nm.notify(0, notification); //发送到状态条上
创建和触发Notification
创建和配置新的Notification需要经历三步。
首先,你要创建一个新的Notification对象,传入要在状态条上显示的图 标、文字和Notification的 当前时间,如下面的代码片段所示:
// Choose a drawable to display as the status bar icon
int icon = R.drawable.icon;
// Text to display in the status bar when the notification is launched
String tickerText = “Notification”;
// The extended status bar orders notification in time order
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
当Notification触发时,文本将沿着状态条进行滚动 显示。
其次,使用setLatestEventInfo方法来配置Notification在扩展的状态窗口中的外观。扩展
的状态窗口将显示图标和在构造函数中传入的时间,以及显示标题和一个详细的字符串。Notification一般表示为对一个动作的请求或引起用户的注
意,所以,当用户点击Notification项目时你可以指定一个PendingIntent来触发。
下面的代码片段使用了setLastestEventInfo来设置这些值:
Context context = getApplicationContext();
// Text to display in the extended status window
String expandedText = “Extended status text”;
// Title for the expanded status
String expandedTitle = “Notification Title”;
// Intent to launch an activity when the extended text is clicked
Intent intent = new Intent(this, MyActivity.class);
PendingIntent launchIntent = PendingIntent.getActivity(context, 0, intent, 0);
notification.setLatestEventInfo(context,
expandedTitle,
expandedText,
launchIntent);
一个好的形式是显示相同事件(例如,接 收多个SMS消息)的多个对象时 使用一个Notification图 标。为了呈现给用户,使用setLastestEventInfo更新数据集来呈现最近的消息以及重新触发Notification来更新它的值。
你还可以使用number属性来显示一个状态条图标所表示的事件数目。
设置为比1大的数,如下所示,将在状态条图标上以一个小小的数字进行 显示:
notification.number++;
任何对Notification的变更,你都需要重新触发来进行更 新。如果要删除这个数字,设置number的值为0或者-1。
最后,你可以对Notification对象使用多种属性来增强Notification的效果,如闪烁LED、震动电话和播放音乐文件。这些高级特征将在本章的后面部分进行详细描述。
触发Notification
为了触发一个Notification,使用NotificationManager的notify方法,将一个整数的ID和Notification对象传入,如下的片段所示:
int notificationRef = 1;
notificationManager.notify(notificationRef, notification);
为了更新一个已经触发过的Notification,传入相同的ID。你既可以传入相同的Notification对象,也可以是一个全新的对象。只 要ID相同,新的Notification对象会替换状态条
图标和扩展的状态窗口的细节。
你还可以使用ID来取消Notification,通过调用NotificationManager的cancel方法,如下所示:
notificationManager.cancel(notificationRef);
取消一个Notification时,将移除它的状态条图标以及清除 在扩展的状态窗口中的信息。
Notification和NotificationManager的基本使用方法
1. NotificationManager和Notification用来设置通知。
通知的设置等操作相对比较简单,基本的使用方式就是用新建一个Notification对象,然后设置好通知的各项参数,然后使用系统后台运行的 NotificationManager服务将通知发出来。
基本步骤如下:
1)得到NotificationManager:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
2)创建一个新的Notification对象:
Notification notification = new Notification();
notification.icon = R.drawable.notification_icon;
也可以使用稍微复杂一些的方式创建Notification:
int icon = R.drawable.notification_icon; //通知图标
CharSequence tickerText = "Hello"; //状态栏(Status Bar)显示的通知文本提示
long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示
Notification notification = new Notification(icon, tickerText, when);
3)填充Notification的各个属性:
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提供了丰富的手机提示方式:
a)在状态栏(Status Bar)显示的通知文本提示,如:
notification.tickerText = "hello";
b)发出提示音,如:
notification.defaults |= Notification.DEFAULT_SOUND;
notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");
notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
c)手机振动,如:
notification.defaults |= Notification.DEFAULT_VIBRATE;
long[] vibrate = {0,100,200,300};
notification.vibrate = vibrate;
d)LED灯闪烁,如:
notification.defaults |= Notification.DEFAULT_LIGHTS;
notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 300;
notification.ledOffMS = 1000;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
4)发送通知:
private static final int ID_NOTIFICATION = 1;
mNotificationManager.notify(ID_NOTIFICATION, notification);
2. 通知的更新
如果需要更新一个通知,只需要在设置好notification之后,再调用setLatestEventInfo,然后重新发送一次通知即可。
发表评论
-
android listview的HeadView左右切换图片(仿新浪,网易,百度等切换图片)
2013-01-15 20:02 2910http://blog.csdn.net/jj120522 ... -
Maven Android Plugin
2013-01-06 16:20 1641Maven Android Plugin h ... -
解决Android模拟器无法用PC键盘输入与模拟器外部功能添加.
2013-01-06 16:20 1490公司发了PC后重新装了Android开发环境. 但是在模拟器上 ... -
Android Fragment使用
2012-12-20 17:29 906你可以像为View一样, 为fragment指定lay ... -
Android异步处理四:AsyncTask的实现原理
2012-12-14 09:08 1035在《Android异步处理二:使用AsyncTask异步 ... -
Android异步处理三:Handler+Looper+MessageQueue深入详解
2012-12-14 09:06 1021在《Android异步处理一:使用Thread+Hand ... -
Android异步处理二:使用AsyncTask异步更新UI界面
2012-12-14 09:00 1076在《Android异步处理一:使用Thread+Hand ... -
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
2012-12-14 08:48 1044概述:每个Android应用程序都运行在一个dalvik ... -
Android 中LayoutInflater的使用
2012-12-11 20:11 0大家好我们这一节讲的是LayoutInflater的使用,在实 ... -
邵洋江 android之tabhost讲解
2012-12-11 19:15 0Tab标签页是界面设计时经常使用的界面控件,可以实现多个分页之 ... -
android Bitmap用法总结
2012-12-10 13:09 0android Bitmap用法总结 http://ww ... -
Parcelable接口应用
2012-11-30 19:53 0Android中Intent传递对象有两个方法,一个是让 ... -
常用的android弹出对话框
2012-11-09 08:47 0http://blog.csdn.net/chenlei ... -
Android实现推送方式解决方案
2012-11-07 13:44 0转:http://www.cnblogs.com/han ... -
Android 之 下拉框(Spinner)的使用
2012-11-06 15:16 0下拉列表 Spinner。 Spinner的使用,可以极 ... -
android ListView添加事件并获取选中项的值
2012-11-05 11:45 0转:http://www.beijibear.com/?aid ... -
Android 用TextView做菜单的多个onClick事件的处理
2012-11-02 19:23 0TextView控件使用OnClick事件监听的时候,会遇到一 ... -
在ListView中显示网络图片
2012-11-02 08:30 1153最近在做一个天气预报的例子,想在ListView中添加网 ... -
android ListView详解
2012-11-01 09:43 0在android开发中ListView是比较常用的组件, ... -
Android用Application设置全局变量以及使用
2012-10-21 14:08 976如果想在整个应用中使用全局变量,在java中一般是使用静态 ...
相关推荐
本文将深入探讨`Android 之 Notification 通知消息`的相关知识点,包括Notification的基本使用、设计原则、通知渠道以及自定义样式。 一、Notification基本使用 Notification主要由三个核心组件构成:Notification....
第十九讲:AndroidNotification的使用入门** - **链接**: [http://www.apkbus.com/android-725-1-1.html](http://www.apkbus.com/android-725-1-1.html) - **内容概述**: 这篇文章适合初学者阅读,它从零开始...
在Android系统中,Notification是一种重要的用户界面元素,用于在状态栏显示应用的提醒或消息。当用户无法直接与应用交互时,例如手机锁屏或在其他应用中,Notification可以帮助用户了解应用的状态并进行相应的操作...
在Android开发中,`Notification`、`Service`和`BroadcastReceiver`是三个核心组件,它们在许多场景下都有着重要的作用,特别是在实现应用后台运行、实时更新等任务时。本项目"Android notification+Service实时更新...
在Android平台上,实现即时通知通常会借助Google的云消息推送服务(Google Cloud Messaging,简称GCM),但在iOS系统中,对应的则是Apple Push Notification service(APNs)。然而,这里提到的"android apns"可能是...
在Android 8.0(API级别26)中,通知系统经历了一次重大更新,引入了`NotificationChannel`的概念,以提供更好的用户控制和透明度。这个改变对开发者来说是必要的,因为旧的通知写法在新版本上不再有效。本文将深入...
在Android开发中,Notification是一种非常重要的组件,它用于在状态栏上向用户显示信息,即使应用在后台运行或用户没有直接与应用交互时也能提供反馈。Android自定义Notification允许开发者根据自己的需求创建具有...
本压缩包"Android应用源码之notification.zip"很可能是包含了Android系统源码中关于Notification组件的相关文件,便于开发者深入理解Notification的工作原理和实现机制。 1. **Notification结构和工作流程** - ...
在Android系统中,Notification是应用与用户交互的重要方式之一,特别是在后台运行时,它能将信息传达给用户,如消息提醒、下载进度等。本文将深入探讨如何利用Android的Notification API来实现动态下载过程的可视化...
在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它允许应用在不干扰用户当前活动的情况下传达重要信息。`Android-Notification-Example-master`是一个专注于Android通知系统的示例项目,非常...
Android Push Notification服务是Android应用程序与用户交互的一种重要方式,它允许应用在后台向用户发送消息,即使应用没有在运行。AndroidPN(Android Push Notification)是一个开源项目,专注于提供服务端的解决...
在Android开发中,Notification是应用与用户交互的重要方式,它能够在状态栏中显示信息,即使用户不在应用程序中也能提醒用户有新的活动或消息。本文将深入解析Android Notification的工作原理、设计模式以及如何...
在Android系统中,通知(Notification)是用户界面中不可或缺的一部分,它允许应用在状态栏或者通知中心向用户传达重要信息,即使用户并未直接与应用交互。"Android Notification"这一主题聚焦于如何创建和管理用于...
Notification 在 Android 系统中扮演着关键的角色,主要功能包括: 1. 提醒用户:当应用在后台运行或者没有在前台显示时,Notification 可以提供一种方式让用户知道应用的活动状态,例如邮件到达、消息通知、下载...
"AndroidNotification"项目旨在整合Android平台上所有Notification的使用方法,这对于开发者来说是一个宝贵的资源,能够帮助他们理解和实践各种通知功能。 首先,我们来详细了解一下Android中的Notification。...
总之,`Notification`在Android应用中用于提供非侵入性的用户提示,根据不同的Android版本和需求,开发者可以选择使用基础通知、带有大图标的高级通知,或者完全自定义视图的通知来展示信息。正确使用`Notification`...
在Android开发中,Notification是应用与用户交互的重要方式,它可以在状态栏中显示信息,即使应用在后台运行或用户没有直接与应用交互时也能提醒用户。本教程将深入讲解如何在Android中创建和使用Notification,并...
在Android系统中,Notification是应用与用户交互的重要方式,它可以在状态栏中显示信息,即使用户不在使用应用时也能提醒用户有新的事件发生。本文将深入探讨如何在Android中使用Notification,包括基本用法、自定义...
在Android开发中,通知(Notification)是用户界面中不可或缺的一部分,它允许应用在状态栏上显示消息,即使应用不在前台运行也能与用户交互。这个"Android 通知(notification)简单实用Demo"提供了一个基础的实现...