通知,几乎存在于每一个 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. CSS中的rem的换算

    rem好像也是一个相对大小的值,它是相对于根元素<html>,比如假设,我们设置html的字体大小的值为 html{font-size: 87.5%;}(也就是14px,这是twentyt ...

  2. eval解析JSON中的注意点

       在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery ...

  3. 【刷题记录】 && 【算法杂谈】折半枚举与upper_bound 和 lower_bound

    [什么是upper_bound 和 lower_bound] 简单来说lower_bound就是你给他一个非递减数列[first,last)和x,它给你返回非递减序列[first, last)中的第一 ...

  4. 前端性能优化--为什么DOM操作慢?

    作为一个前端,不能不考虑性能问题.对于大多数前端来说,性能优化的方法可能包括以下这些: 减少HTTP请求(合并css.js,雪碧图/base64图片) 压缩(css.js.图片皆可压缩) 样式表放头部 ...

  5. mac 关于使用protobuf出现ld: symbol(s) not found for architecture x86_64的问题

    主要是编译时没有添加protobuf库文件 g++  -o Writer.o  lm.helloworld.pb.cc Writer.cpp -L/usr/local/lib -lprotobuf

  6. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  7. Find Peak Element

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  8. css3 linear-gradient实现页面加载进度条效果

    最终效果图: html结构: <div>    <p class="p1">        <span></span>    < ...

  9. HUD--递增数

    递增数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  10. iOS 从某个页面返回然后刷新当前页面

    -------->不说废话 在返回页面实现下面方法: - (void)navigationController:(UINavigationController*)navigationContro ...