通知,几乎存在于每一个 Android 的应用中,新闻客户端来一条新闻的时候会给你发一条通知,QQ、微信有新消息来的时候会给你发一条通知,反正,通知就像魔鬼般一直缠绕在我们的左右。所以,Android 的开发中,关于通知这方面也是需要掌握的。

什么是通知?
通知是您可以在应用的常规 UI 外部向用户显示的消息。当您告知系统发出通知时,它将先以图标的形式显示在通知区域中。用户可以打开抽屉式通知栏查看通知的详细信息。 通知区域和抽屉式通知栏均是由系统控制的区域,用户可以随时查看。(摘自于google官方网站) 怎么写一个通知并发出去呢?
1、创建通知
2、设置相关的标题,内容以及要做的动作等等
3、发送通知 如何创建通知?
通知的创建是比较费事的,怎么说呢?不就new一个就好了么,肯定没那么简单了。
API 11 以前(不包括11)
说的好简单,new 一个就好,你以为是对象啊,想要什么就 new 什么。没错,通知也是一个对象。确实也可以 new 出来,但这是api版本 11 以前的了,在api 11 以前确实可以直接new,然后发送。就是那么简单。new Notification())
API 16以前(不包括16)
在 api 11 以后,采用的是 Build 的方式去创建一个通知,但怎么兼容 api 版本 11 以前的呢?官方给出了一个万能的兼容包,那就是V4包,我们都知道,V4 是我们开发中必不可少并且很强大的一个兼容包,里面涵盖的东西也很多,例如Fragment,drawLayout等等,所以,这也很好兼容,直接使用V4包解决全部问题。new NotificationCompat.Builder(this).build())
API 16以后(包括16)
好了,16以前的问题解决了,谷歌没事做又在通知这里折腾了,16以后又变了。这个时候又可以使用 Android 自带的来创建通知了,别想多,不是直接 new,还是通过 Build 的方式来创建,只不过 Build 的方式有所变化。(new Notification.Builder(this).build())
API 23以上(包括23)
这个版本就蛋疼了,以前可以直接setLatestEventInfo() 一次性解决所有问题的,一次设置标题,内容等。现在不行了,api 23以上的版本的 Android 已经弃用了这个方法。所以,以前的 setLatestEventInfo 又要say goodbye 了。
从上面可以看出,要兼容所有的版本其实还是比较复杂的,有那么复杂吗?
其实也没那么复杂,既然11以前的已经弃用new的方式了,就直接使用V4包就好了,23以上的 setLatestEventInfo 已经弃用,就不用就好了。最后就只剩下 API 16 这个分界线了。所以,最后我们只需要根据 API 的版本判断一下是 16 以前的还是 16 以后的就好啦。
最后来看大招:

一个完美的通知就这样写出来了。代码写的很简单,注释也有,不再解释。
这是比较简单的一个通知,也是最基本的通知。通知还有多种玩法,例如,闪三色灯,震动、铃声提醒等。还有自定义通知样式,字体,大图通知等等多种玩法。这里就先不放出来了,后续有时间再写几篇有关于通知的博文吧! 2016-10-26

Android-Notification-简单的demo的更多相关文章

  1. 转:android surface简单使用Demo

    转: http://blog.csdn.net/listening_music/article/details/6860786 通过之前介绍的如何自定义View, 我们知道使用它可以做一些简单的动画效 ...

  2. android JNI 简单demo(2)它JNI demo 写

    android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...

  3. Android Notification 详解(一)——基本操作

    Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...

  4. Android Notification 详解——基本操作

    Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...

  5. 3、android notification 详细用法

    在 android 系统中,在应用程序可能会遇到几种情况需要通知用户,有的需要用户回应,有的则不需要,例如: * 当保存文件等事件完成,应该会出现一个小的消息,以确认保存成功. * 如果应用程序在后台 ...

  6. Android NOtification 使用(震动 闪屏 铃声)

    一. Notification 简介 在 android 系统中,在应用程序可能会遇到几种情况需要通知用户,有的需要用户回应,有的则不需要,例如: * 当保存文件等事件完成,应该会出现一个小的消息,以 ...

  7. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

  8. Android Notification通知详细解释

    Android Notification通知具体解释  Notification: (一).简单介绍:         显示在手机状态栏的通知. Notification所代表的是一种具有全局效果的通 ...

  9. 解决Android微信支付官方demo运行失败

    Android微信支付官方demo运行失败,在此简单记录一下解决步骤 1.httpclient错误 官方给的demo是eclipse的,打开之后提示httpclient的错误,我知道在as下解决htt ...

  10. Android JNI学习(五)——Demo演示

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

随机推荐

  1. 控制台游戏引擎CGE——贪吃蛇

    今天我也来发一个控制台游戏.先看图: 缘起 LZ是一个有严重拖延症的人,表现的形式就是隔一段时间就要刷一刷博客园. 这不前几天,看到了魏大师<使用Lua脚本语言开发出高扩展性的系统...> ...

  2. 【NuGet】打包上传一条龙服务

    昨天写了搭建自己的NuGet程序源,但是领导不满意之前的打包上传~~,无奈只能去爬点思路了,这里参考的其他博文,但是还是想写下来. 第一步.建立一个批处理文件 在文件里,有三条命令: nuget pa ...

  3. Java面向对象之封装

     面向对象的三个特征:封装.继承和多态. Java开发的过程就是找合适的库对象使用,没有对象创建新对象.找对象,建立对象,使用对象并维护对象之间的关系. 类就是对现实生活中事物的描述,而对象就是这类事 ...

  4. 【转载】AB测试结果分析

    AB测试,200个请求,20个并发.这样的测试强度,CPU占了70-80%,w3p占用了70多M内存,本想多测几次,看看它的内存会不会涨上去,没 有测试机器没办法,开发机要干活.我估计CPU就有问题了 ...

  5. 文件处理命令:awk

    awk擅长于对数据进行分析并生成报告,简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. 使用方法:awk '{pattern +action}' {fi ...

  6. eclipse常见问题

    使用eclipse进入断点,当弹出"Confir Perspective Switch"视图时,选择"Yes".之后每次进入断点都会自动切换到debug视图. ...

  7. jquery 的3D Carousel插件参数说明

    这个插件大家都很熟悉了,但是在网上找了很久找不到相关的资料,只有自己琢磨研究了一下.有些参数一眼都可以看出意思,在此我只说一下每个图片要想带一些扩展信息怎么处理. 1:首先需要创建一个ul对象,然后里 ...

  8. sql2000分享 批量建表dev_编号

    批量建表dev_3970000000014到dev_3970000000035 declare @i bigint declare @j int ) ) ) ) set @sql = '' set @ ...

  9. VMware Workstation 12序列号

    VMware Workstation 12序列号:5A02H-AU243-TZJ49-GTC7K-3C61N 就好像之前微软,让大家用盗版一样,这样可以更快的拥有市场占有率.事实上,输入key即可永久 ...

  10. PHP的数组排序函数

    <?php class order{ /** * * 数组排序 * @param array $arr 例如: * array ( array ( 'deskId' => '460646' ...