android开发之Notification_通知栏消息「建议收藏」

Notification简介  Notification看名字就知道,是一个和提醒有关的东西,它通常和NotificationManager一块使用。具体来说,其主要功能如下。  1.NotificationManager和Notification用来设置通知  通知的设置等操作相对比较简单,基本的使用方式就是新建一个Notification对象,设置好通知的各项参数,然后使用系统后台

大家好,又见面了,我是全栈君。

Notification简介

  Notification看名字就知道,是一个和提醒有关的东西,它通常和NotificationManager一块使用。具体来说,其主要功能如下。

  1.NotificationManager和Notification用来设置通知

  通知的设置等操作相对比较简单,基本的使用方式就是新建一个Notification对象,设置好通知的各项参数,然后使用系统后台运行的NotificationManager服务将通知发出来。基本步骤如下。

  1)得到NotificationManager,代码如下。

    String ns = Context.NOTIFICATION_SERVICE;

  NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

  2)创建一个新的Notification对象,代码如下。

    Notification notification = new Notification();

  notification.icon = R.drawable.notification_icon;

  也可以使用稍微复杂一些的方式创建Notification,代码如下。

   int icon = R.drawable.notification_icon; //通知图标

  CharSequence tickerText = "Hello"; //状态栏(Status Bar)显示的通知文本提示

  long when = System.currentTimeMillis(); //通知产生的时间,会在通知信息里显示

  Notification notification = new Notification(icon, tickerText, when);

  3)填充Notification的各个属性,代码如下。

    Context context = getApplicationContext();

  CharSequence contentTitle = "My notification";

  CharSequence contentText = "Hello World!";

  Intent notificationIntent = new Intent(this, MyClass.class);

  PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

  notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

  状态栏(Status Bar)显示的通知文本提示,例如:

    notification.tickerText = "hello";

  发出提示音,例如:

    notification.defaults |= Notification.DEFAULT_SOUND;

  notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");

  notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");

  手机振动,例如:

    notification.defaults |= Notification.DEFAULT_VIBRATE;

  long[] vibrate = {0,100,200,300};

  notification.vibrate = vibrate;

  LED灯闪烁,例如:

    notification.defaults |= Notification.DEFAULT_LIGHTS;

  notification.ledARGB = 0xff00ff00;

  notification.ledOnMS = 300;

  notification.ledOffMS = 1000;

  notification.flags |= Notification.FLAG_SHOW_LIGHTS;

  4)发送通知,代码如下。

    private static final int ID_NOTIFICATION = 1;

  mNotificationManager.notify(ID_NOTIFICATION, notification);

  5)实现点击后不消失

notification.flags = Notification.FLAG_NO_CLEAR;

2.更新通知

  如果需要更新一个通知,只需要在设置好Notification之后,再调用setLatestEventInfo,然后重新发送一次通知即可。

  为了更新一个已经触发过的Notification,传入相同的ID。用户既可以传入相同的Notification对象,也可以是一个全新的对象。只要ID相同,新的Notification对象会替换状态条图标和扩展的状态窗口的细节。

  另外,还可以使用ID来取消Notification,通过调用NotificationManager的cancel方法,代码如下。

  notificationManager.cancel(notificationRef);

  当取消一个Notification时,会移除它的状态条图标以及清除在扩展的状态窗口中的信息。

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121395.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 列车调度问题[通俗易懂]

    列车调度问题[通俗易懂]题目:高铁货运站的调配问题我们国家大力发展道路交通基础设施,最近这些年修建了大量的高铁线路,以促进国内的物资运输和调配,ZZ是一个超级货运站,是连接亚欧货运的枢纽站,现在ZZ货运站列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意…

    2022年7月26日
    7
  • c 获取UUID_c获取程序运行路径

    c 获取UUID_c获取程序运行路径计算机获取UUIDUUID是通用唯一识别码(UniversallyUniqueIdentifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名…

    2022年8月9日
    19
  • vm15激活码(JetBrains全家桶)

    (vm15激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI…

    2022年3月22日
    114
  • 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)

    高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)xxx大学xxx校区网络整体规划设计方案完成日期:2017年1月4日目录一、项目综述…11.1学校概况…11.1.1.11.2建设目标…11.2.1概述…11.2.2具体目标…11.3建设原则…11.3.1概述…11.3.2具体原则…2二、需求分析…32….

    2025年7月7日
    4
  • java中Map的用法

    java中Map的用法Map是java中的接口,Map.Entry是Map的一个内部接口。Map提供了一些常用方法,如keySet()、entrySet()等方法。keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。Map<Stri

    2022年7月9日
    20
  • Spring AOP 最热门面试题及答案「建议收藏」

    Spring AOP 最热门面试题及答案「建议收藏」译者的话前几天去京东面试,被问到AOP相关的问题,之前一直没有系统地学习相关的知识,答得不是很好。趁着假期,找了一下相关的资料,CSDN上有很多不错的文章,看了之后对AOP有比较好的理解了。然后Google了一下AOP相关面试题(AOPinterview),搜出来的第一条结果是一个叫HowToDoInJava的网站上的一篇文章TopSpringAOPIntervie…

    2022年8月11日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号