Notification是Android中很理想的一种显示提示信息的方法,它可以将应用程序的信息传递到我们的Android桌面状态栏,采用这种消息传递方式不会影响到用户对手机的正常使用。而且Notification不仅仅可以传递文字信息,还可以传递图片信息,甚至可以将我们的控件追加到上面,只要用户不对其进行清空,那么消息将一直保存在用户桌面的状态栏当中。

Notification通常用来进行对用户的更新提醒等消息的传递。

  Notification需要使用到NotificationManager(消息通知管理类)对消息进行管理,其创建需要五个步骤:

(1)通过getSystemService获取Notification对象

(2)创建一个Notification,每一个notification对应一个notification对象。

(3)创建一个PendingIntent对象

(4)使用notification类的setLatestEventInfo方法设置Notification对象的详细信息

(5)使用NotificationManager对象的notify方法显示消息

在第二步时应当注意需要设置显示在屏幕上方状态栏的通知消息、通知消息前方的图像资源ID和放出通知的时间,一般为当前时间

(3)创建PendingIntent对象:

由于notification可以与应用程序脱离,也就是说你的应用程序已经关闭,消息仍然显示在状态栏之中,当应用程序再次启动后,又可以重新控制这些notification,如清除、替换等工作。因此需要PendingIntent对象,该对象由安卓系统维护,因此,应用程序关闭后,消息仍然不会被释放。

(4)在使用notify方法时需要指定Notification对象的唯一ID,这个ID必须相对于一个Notificationmanager对象来说是唯一的,否则就会覆盖相同ID的

Notification

NotificationManager manager  = (NotificationManager)

getSystemService(NOTIFICATION_SERVICE);

String notice = "您有短消息了!";

Notification notification = new Notification(R.drawable.ic_launcher, notice,System.currentTimeMillis());

PendingIntent contentIntent = PendingIntent.getActivity

(getApplicationContext(), 0, getIntent(), 0);

notification.setLatestEventInfo

(getApplicationContext(), "小搬运工又变帅了", "华中软件龙头企业", contentIntent);

notification.defaults = Notification.DEFAULT_SOUND;

notification.defaults = Notification.DEFAULT_LIGHTS;

notification.defaults = Notification.DEFAULT_VIBRATE;

notification.defaults = Notification.DEFAULT_ALL;

manager.notify(R.drawable.ic_launcher,notification);

1、如果要调取声音,需用使用到:android:name=“android.permission.VIBRATE”权限

  NotificationManager.cancel(resId)清除某个数据 NotificationManager.cancelAll()清除某个NotificationManager对象中的所有消息。
在清除完消息后,需要做一些善后工作,需要通过notification,deleteIntent来完成,deleteIntent也需要一个pendingIntent类型的变量,用于在清除所用的notification对象时调用。这个动作可以与Activity、Service、Broadcast关联。

如果想永久保存推送的通知,需要增加代码:

•notification.flags = Notification.FLAG_NO_CLEAR;

安开发卓之Notification(一)代码直接能用的更多相关文章

  1. ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局

    本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...

  2. django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务

    上一篇博客介绍了comments库使用及ajax支持,现在blog已经具备了基本的功能,但是只能发表文字,不支持富文本编辑.今天我们利用markdown添加富文本支持. markdown语法说明: h ...

  3. iOS开发 swift 3dTouch实现 附代码

    iOS开发 swift 3dTouch实现 附代码 一.What? 从iphone6s开始,苹果手机加入了3d touch技术,最简单的理解就是可以读取用户的点击屏幕力度大小,根据力度大小给予不同的反 ...

  4. Vue项目开发最新、最全代码规范文档

    Vue项目开发最新.最全代码规范文档 2019年02月21日 10:43:49 yw00yw 阅读数 337   一. 目录结构 |— build 构建脚本目录 |— build.js 生产环境构建( ...

  5. android软件简约记账app开发day04-记账页面条目的代码书写

    android软件简约记账app开发day04-记账页面条目的代码书写 在前三天我们完成了基本的界面展示,从今天开始,我们进入到后台逻辑代码的编写中,今天开发记账条目的代码 我们在主页面点击记一笔图标 ...

  6. Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式

    前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...

  7. 1 go 开发环境搭建与简单代码实现

    什么是go语言 go是一门并发支持,垃圾回收的编译型 系统编程语言,旨在创造一门具有静态编译语言的高性能和动态语言的高效开发之间拥有一个良好平衡点 的一门编程语言. go有什么优点? 自动垃圾回收机制 ...

  8. ios 开发中使用SVN管理代码

    今天新公司需要使用SVN管理代码,就在网上查看相关的资料,现在把相关用法记录下来: 1.使用的是这个软件Cornerston 网上有很多相应的下载链接,可以去查看 2.下载安装之后,首先需要添加仓库r ...

  9. Android NDK开发(五)--C代码回调Java代码【转】

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/41862479 在上篇博客里了解了Java层是怎样传递数据到C层代码,并且熟悉了大部 ...

随机推荐

  1. Web前端温故知新-CSS基础

    一.CSS定义与编写CSS 1.1 CSS的定义 全名:Cascading Style Sheets -> 层叠样式表 定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体. ...

  2. 弄了一个支持SSL的TCP客户端

    近日需要做一些TCP的收发的调试,到网上去找TCP调试工具,找了好几款,发现不是功能不全就是不支持HEX,更重要的SSL也不支持,于是动手写了一款,叫TCPRunner,有以下特性: 使用异步IO方式 ...

  3. DevExpress学习系列(控件篇):GridControl的基本应用

    一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...

  4. Web API 强势入门指南

    Web API是一个比较宽泛的概念.这里我们提到Web API特指ASP.NET Web API. 这篇文章中我们主要介绍Web API的主要功能以及与其他同类型框架的对比,最后通过一些相对复杂的实例 ...

  5. mvc4 自定义HtmlHelper

    好久没写博客了,最近只看博客不写的习惯很不好啊. 好了,最近的项目中大量的用到了表单,很多表单有特殊的编写,但是在该项目中又有很多重复的地方,这个时候若能封装成htmlhelper将大大降低工作量的. ...

  6. jQuery +ajax +json+实现分页

    正文 首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码 ...

  7. Android笔记——Handler Runnable与Thread的区别

    在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口:Thread类是在java.lang包中定义的.一个类只要继承了Thread类同时覆写了本类中的run() ...

  8. PHP的学习--新特性

    最近做的项目使用了 php7,但感觉有很多新特性没有用起来.就想总结一下,一些可能会用到的新特性.之前使用的环境是 php5.4,所有也会有 php5.5 和 php5.6 的特性总结进来,这里只列出 ...

  9. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  10. C语言之链表list

    #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h& ...