Android中的消息通知(NotificationManager和Notification)
下面来谈谈notification,这个notification一般用在电话,短 信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯。已添加的 Notification.Builder,使其更容易构建通知。notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。 它是看不见的程序组件(Broadcast Receiver,Service和不活跃的Activity)警示用户有需要注意的事件发生的最好途径。
先来区分以下状态栏和状态条的区别:
1、状态条就是手机屏幕最上方的一个条形状的区域;
在状态条有好多信息量:比如usb连接图标,手机信号图标,电池电量图标,时间图标等等;
2、状态栏就是手从状态条滑下来的可以伸缩的view;
在状态栏中一般有两类(使用FLAG_标记):
(1)正在进行的程序;
(2)是通知事件;
快速创建一个Notification的步骤简单可以分为以下四步:
第一步:通过getSystemService()方法得到NotificationManager对象;
1.nManager = (NotificationManager) this.getSystemService(service);第二步:对Notification的一些属性进行设置比如:内容,图标,标题,相应notification的动作进行处理等等;
01.notification.icon = R.drawable.ic_launcher;// 设置通知的图标 02.notification.tickerText = tickerText; // 显示在状态栏中的文字 03.notification.when = when; // 设置来通知时的时间 05.notification.flags = Notification.FLAG_NO_CLEAR; // 点击清除按钮时就会清除消息通知,但是点击通知栏的通知时不会消失 06.notification.flags = Notification.FLAG_ONGOING_EVENT; // 点击清除按钮不会清除消息通知,可以用来表示在正在运行 07.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 点击清除按钮或点击通知后会自动消失 08.notification.flags |= Notification.FLAG_INSISTENT; // 一直进行,比如音乐一直播放,知道用户响应 09.notification.defaults = Notification.DEFAULT_SOUND; // 调用系统自带声音 10.notification.defaults = Notification.DEFAULT_VIBRATE;// 设置默认震动 11.notification.defaults = Notification.DEFAULT_ALL; // 设置铃声震动 12.notification.defaults = Notification.DEFAULT_ALL; // 把所有的属性设置成默认第三步:通过NotificationManager对象的notify()方法来执行一个notification的消息;
1.nManager.notify(ID, notification);第四步:通过NotificationManager对象的cancel()方法来取消一个notificatioin的消息;
1.nManager.cancel(ID);Notification.build构造Notification方法介绍:
void setLatestEventInfo(Context context , CharSequencecontentTitle,CharSequence contentText,PendingIntent contentIntent)
功能: 显示在拉伸状态栏中的Notification属性,点击后将发送PendingIntent对象
参数: context 上下文环境
contentTitle 状态栏中的大标题
contentText 状态栏中的小标题
contentIntent 点击后将发送PendingIntent对象
说明:要是在Notification中加入图标,在状态栏和状态条中显示图标一定要用这个方法,否则报错!
NotificationManager类的常用方法:
通过获取系统服务来获取该对象:
NotificationManager mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE) ;
NotificationManager常用方法介绍:
public void cancelAll() 移除所有通知 (只是针对当前Context下的Notification)
public void cancel(int id) 移除标记为id的通知 (只是针对当前Context下的所有Notification)
public void notify(String tag ,int id, Notification notification) 将通知加入状态栏, 标签为tag,标记为id
public void notify(int id, Notification notification) 将通知加入状态栏,,标记为id
01.package com.sun.alex; 02. 03.import android.app.Activity; 04.import android.app.Notification; 05.import android.app.NotificationManager; 06.import android.app.PendingIntent; 07.import android.content.Intent; 08.import android.net.Uri; 09.import android.os.Bundle; 10.import android.view.View; 11.import android.view.View.OnClickListener; 12.import android.widget.Button; 13. 14.public class NotificationActivity extends Activity { 15. 16.private Button sendBtn, cancelBtn; 17.private Notification notification; 18.private NotificationManager nManager; 19.private Intent intent; 20.private PendingIntent pIntent; 21.// Notification的标示ID 22.private static final int ID = 1; 23. 24.@Override 25.public void onCreate(Bundle savedInstanceState) { 26.super.onCreate(savedInstanceState); 27.setContentView(R.layout.main); 28. 29.sendBtn = (Button) this.findViewById(R.id.send); 30.cancelBtn = (Button) this.findViewById(R.id.cancel); 31. 32.String service = NOTIFICATION_SERVICE; 33.nManager = (NotificationManager) this.getSystemService(service); 34. 35.notification = new Notification(); 36.String tickerText = "测试Notifaction"; // 通知提示 37.// 显示时间 38.long when = System.currentTimeMillis(); 39. 40.notification.icon = R.drawable.ic_launcher;// 设置通知的图标 41.notification.tickerText = tickerText; // 显示在状态栏中的文字 42.notification.when = when; // 设置来通知时的时间 44.notification.flags = Notification.FLAG_NO_CLEAR; // 点击清除按钮时就会清除消息通知,但是点击通知栏的通知时不会消失 45.notification.flags = Notification.FLAG_ONGOING_EVENT; // 点击清除按钮不会清除消息通知,可以用来表示在正在运行 46.notification.flags |= Notification.FLAG_AUTO_CANCEL; // 点击清除按钮或点击通知后会自动消失 47.notification.flags |= Notification.FLAG_INSISTENT; // 一直进行,比如音乐一直播放,知道用户响应 48.notification.defaults = Notification.DEFAULT_SOUND; // 调用系统自带声音 49.notification.defaults = Notification.DEFAULT_SOUND;// 设置默认铃声 50.notification.defaults = Notification.DEFAULT_VIBRATE;// 设置默认震动 51.notification.defaults = Notification.DEFAULT_ALL; // 设置铃声震动 52.notification.defaults = Notification.DEFAULT_ALL; // 把所有的属性设置成默认 53. 54.sendBtn.setOnClickListener(sendClickListener); 55.cancelBtn.setOnClickListener(cancelClickListener); 56.} 57. 58.private OnClickListener sendClickListener = new OnClickListener() { 59.@Override 60.public void onClick(View v) { 61.// 单击通知后会跳转到NotificationResult类 62.intent = new Intent(NotificationActivity.this, 63.NotificationResult.class); 64.// 获取PendingIntent,点击时发送该Intent 65.pIntent = PendingIntent.getActivity(NotificationActivity.this, 0, 66.intent, 0); 67.// 设置通知的标题和内容 68.notification.setLatestEventInfo(NotificationActivity.this, "标题", 69."内容", pIntent); 70.// 发出通知 71.nManager.notify(ID, notification); 72.} 73.}; 74. 75.private OnClickListener cancelClickListener = new OnClickListener() { 76.@Override 77.public void onClick(View v) { 78.// 取消通知 79.nManager.cancel(ID); 80.} 81.}; 82.}Android中的消息通知(NotificationManager和Notification)的更多相关文章
- 浅析Android中的消息机制(转)
原博客地址:http://blog.csdn.net/liuhe688/article/details/6407225 在分析Android消息机制之前,我们先来看一段代码: public class ...
- 浅析Android中的消息机制(转)
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 浅析Android中的消息机制-解决:Only the original thread that created a view hierarchy can touch its views.
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 浅析Android中的消息机制
在分析Android消息机制之前,我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 重温Android中的消息机制
引入: 提到Android中的消息机制,大家应该都不陌生,我们在开发中不可避免的要和它打交道.从我们开发的角度来看,Handler是Android消息机制的上层接口.我们在平时的开发中只需要和Hand ...
- Android中的消息机制
在分析Android消息机制之前.我们先来看一段代码: public class MainActivity extends Activity implements View.OnClickListen ...
- 谈谈对Android中的消息机制的理解
Android中的消息机制主要由Handler.MessageQueue.Looper三个类组成,他们的主要作用是 Handler负责发送.处理Message MessageQueue负责维护Mess ...
- MQTT协议实现Android中的消息收发
前言 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),基于发布/订阅范式的消息协议,是一种极其简单和轻量级的消息协议,专为受限设备和低带宽.高延迟 ...
- Android中的消息机制:Handler消息传递机制
参考<疯狂android讲义>第2版3.5 P214 一.背景 出于性能优化考虑,Android的UI操作并不是线程安全的,这意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为 ...
随机推荐
- FoLlow 的技术博客
酷壳 http://coolshell.cn 老赵点滴- 追求编程之美 http://blog.zhaojie.me/ Pixel-In-Gene Blog
- 【转】TCP协议的无消息边界问题
http://www.cnblogs.com/eping/archive/2009/12/12/1622579.html 使用TCP协议编写应用程序时,需要考虑一个问题:TCP协议是无消息边界的, ...
- [转载]BW增量更新的理解(时间戳)
在BW中,存在两种数据抽取方式,完全更新与增量更新,完全更新是每次把截至到某个时间的数据全部抽取,增量抽取则只抽取上次和本次抽取之间更新的数据,很显然,增量抽取能够提高系统效率,根据SAP帮 助的说法 ...
- 在线制作h5
在线制作h5 官网:http://www.godgiftgame.com 在线制作h5首页预览效果图如下: 一.主要功能区域主要功能区域分布在上中左右三个地方,1.上面区域是功能选择区,包括图片素材. ...
- Windows Live Writer配置步骤
推荐文档: [超详细教程]使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结 Live Writer 使用小贴示:发博客时始终使用图片原始 ...
- Sql中的Merge和output
先看merge, 不用merge时: --更新 update TA Value ) --插入没有的数据 insert into TA ,,Value from TB ) and TypeName=@v ...
- openssl命令行工具简介 - RSA操作
原文链接: http://www.cnblogs.com/aLittleBitCool/archive/2011/09/22/2185418.html 首先介绍下命令台下openssl工具的简单使用: ...
- WinDbg 命令集锦
//断点相关 bp + 地址 设置断点bl 显示已经设定的断点bu + 地址 设置断点,但是这种类型断点再下一次启动时被记录bc 清除断点对于断点范围,可以用*匹配,-表示一个范围,表达多个可用,号 ...
- English Metric Units and Open XML
English Metric Units and Open XML 在Open XML里使用了English Metric Units(EMUs)来作为度量单位.比如 public class Ext ...
- SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)
由于SharePoint 2013推出不久,并非所有的企业都会升级到SharePoint 2013的,毕竟升级不是打打补丁这么简单,更多的企业还是使用Sharepoint 2010版本的,因此本人自行 ...