Notification 介绍见:https://developer.android.com/reference/android/app/Notification.html



Android api 一直对通知栏进行升级! 包括7.0继续改善快捷通知栏,接下来介绍下通知栏不同版本的兼容适配.



**Android  JELLY_BEAN(16) 通知可以直接new Notification()**



     Notification notification = new Notification();

     notification.icon = android.R.drawable.stat_sys_download_done;

     notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // 设置点击事件的PendingIntent

     notification.setLatestEventInfo(mContext, aInfo.mFilename, contentText, pendingIntent);



**Android .LOLLIPOP_MR1(22) 通知可以通过Notification.Builder()**



    Notification notification = new Notification.Builder(mContext)

     .setAutoCancel(false)

     .setContentIntent(pi)// 设置pendingIntent

     .setSmallIcon(android.R.drawable.stat_sys_download_done)

     .setWhen(System.currentTimeMillis())

     .build();

    

**Android .LOLLIPOP_MR1(22)以上 也就从6.0开始  只能通过new NotificationCompat.Builder(mContext)**



    Notification notification = new NotificationCompat.Builder(mContext)

     .setContentTitle(aInfo.mFilename)

     .setContentText(contentText)

     .setSmallIcon(android.R.drawable.stat_sys_download_done)

     .setContentIntent(pi)// 设置pendingIntent

     .build();



# 综合代码: #



     //准备intent

     Intent intent = new Intent();

      String action = "com.skay.myapp.action";

     intent.setAction(action);

    

     //notification

      Notification notification = null;

      String contentText;

      // 构建 PendingIntent

      PendingIntent pi = PendingIntent.getActivity(mContext, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);

     //版本兼容

     

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {

       notification = new Notification();

     notification.icon = android.R.drawable.stat_sys_download_done;

     notification.flags |= Notification.FLAG_AUTO_CANCEL;

     notification.setLatestEventInfo(mContext, aInfo.mFilename, contentText, pi);

    

    } else if (Build.VERSION.SDK_INT >= 23) {

       notification = new NotificationCompat.Builder(mContext)

     .setContentTitle(aInfo.mFilename)

     .setContentText(contentText)

     .setSmallIcon(android.R.drawable.stat_sys_download_done)

     .setContentIntent(pi).build();

    

    } else if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN &&

      Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {

       notification = new Notification.Builder(mContext)

     .setAutoCancel(false)

     .setContentIntent(pi)

     .setSmallIcon(android.R.drawable.stat_sys_download_done)

     .setWhen(System.currentTimeMillis())

     .build();

    }

    mNotificationManager.notify(RESULT_ID, notification);

Android Notification 版本适配方案的更多相关文章

  1. Android最佳实践之SystemBar状态栏全版本适配方案

    前言 自从MD设计规范出来后,关于系统状态栏的适配越受到关注,因为MD在5.0以后把系统状态栏的颜色改为可由开发者配置的,而在5.0之前则无法指定状态栏的颜色,所以这篇就说说使用Toolbar对系统状 ...

  2. 【cocos2d-x 手游研发小技巧(3)Android界面分辨率适配方案】

    先感叹一下吧~~android的各种分辨率各种适配虐我千百遍,每次新项目我依旧待它如初恋···· 每家公司都有自己项目工程适配的方案,这种东西就是没有最好,只有最适合!!! 这次新项目专项针对andr ...

  3. Android开发——Android手机屏幕适配方案总结

    )密度无关像素,单位为dp,是Android特有的单位 Android开发时通常使用dp而不是px单位设置图片大小,因为它可以保证在不同屏幕像素密度的设备上显示相同的效果. /** * dp与px的转 ...

  4. 最清晰的Android多屏幕适配方案

    问题的引入 当您的Android应用即将发布的时候,如果你想让更多的用户去使用你的应用,摆在工程师面前的一个重要问题就是如何让你的应用能在各种各样的终端上运行,这里的各种各样首当其冲的就是不同的屏幕分 ...

  5. Android的代码适配方案

    public class DensityUtil { private DensityUtil(){ throw new AssertionError(); } /** * dp转px * @param ...

  6. android屏幕适配方案

    曾经看了android的屏幕适配方案,有非常多种.当中自己用到的一种是:先找一款主流的分辨率的android机,如:1080*1920的分辨率做基准,然后在这个基准上.调整好一切布局.图片.适配其它手 ...

  7. 版本适配 sdk version MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. Android各版本迭代改动与适配集合

    前言 今天分享的面试题是: Android在版本迭代中,总会进行很多改动,那么你熟知各版本都改动了什么内容?又要怎么适配呢? Android4.4 发布ART虚拟机,提供选项可以开启. HttpURL ...

  9. android多分辨率多密度下界面适配方案

    前言 Android 设计之初就考虑到了UI在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确,UI适配主要受平台两个因素的影响:屏幕尺寸 (屏幕的像素宽度及像素高度)和屏 ...

随机推荐

  1. RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念)

    一.消息队列使用场景或者其好处 消息队列一般是在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 在项目启 ...

  2. 统计处理包Statsmodels: statistics in python

    http://blog.csdn.net/pipisorry/article/details/52227580 Statsmodels Statsmodels is a Python package ...

  3. JQuery 初探

    放暑假了,终于有时间能学点前端的东西了.JQuery就是我第一个选择,锋利的JQuery.这本书真的很好.下面以一个ToggleButton形式的小例子开场吧. 引入JQuery库 在网页上引用JQu ...

  4. 13 SQLiteOpenHelper SQLiteDatabase详解

    创建数据库: 1. 创建一个类继承SQLiteOpenHelper 2. 创建继承对象 new SQLiteOpenHelper() 3. 用创建的对象获取可写或者可读的SQLiteDatabase ...

  5. 最简单的基于FFmpeg的libswscale的示例(YUV转RGB)

    ===================================================== 最简单的基于FFmpeg的libswscale的示例系列文章列表: 最简单的基于FFmpeg ...

  6. HDFS追本溯源:租约,读写过程的容错处理及NN的主要数据结构

    1.      Lease 的机制: hdfs支持write-once-read-many,也就是说不支持并行写,那么对读写的互斥同步就是靠Lease实现的.Lease说白了就是一个有时间约束的锁.客 ...

  7. 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)

    好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...

  8. .NET 连接SQL Server2012遇到的连接出错问题解析

    最近在用VS2013编写相关于SQL Server数据库的代码,但是却遇到了艰难的bug问题,那就是在进行连接的时候出现了各种异常. 出错分析 1.首先应该想到的是数据库的相关服务没有开启. 因为默认 ...

  9. Web Service进阶(六)SOAPBinding绑定方式异常 is not found. Have you run APT to generate them

    当在类中填充相应方法时,提示如下错误: 出现以上错误的原因就是在注解中没有添加@SOAPBinding(style=SOAPBinding.Style.RPC)这句话.估计也与JDK的版本相关,这方面 ...

  10. JAVA DOM4j解析XML数据到自定义javabean

    我们获取xml中的数据,一般以面向对象的思想去处理这些数据.因此,我们需要自定义类来封装解析出来的数据,以方便我们操作这些数据. 自定义的java类,称为javabean. 自定义Contact类代码 ...