Android之Notification初识


1.Notification创建

   首先,介绍一下,创建一个通知所需要用到的类和方法

   

 NotificationManager类

 NotificationManager类是用来管理系统的所有通知的类,该类的对象必须通过Context类的getSystemService()方法获取。完整代码:

NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

  notify()作用是告知系统显示该通知,有notify (int id, Notification notification)和notify (String tag,int id, Notification

  notification),id表示通知的id,tag表示通知的标志,主要用于区分各个通知,notification指的是通知对象;

 cancel(int id) 表示移除指定id的通知,cancel(String tag,int id)移除指定Id和tag的通知,cancelAll()移除所有通知。

  Notification类

   notification有一些常用的属性:

    icon 设置通知图标(在API23后使用setSmallIcon(Icon)替代)

    number 通知所显示的事件数量,例如,收到邮件通知,则指的是邮件未读数量(这是用API11创建的通知所表现的作用)。如果通知是用Notification.builder创建,则number表示扩展通知视图,为0或者负数的时候,通知不显示。

   tickerText 通知显示在通知栏的文本,只在通知栏上显示一次。

   when 系统当前时间

   flags 取值有:

                FLAG_AUTO_CANCEL 该通知能被状态栏的清除按钮给清除掉
FLAG_NO_CLEAR 该通知不能被状态栏的清除按钮给清除掉
FLAG_ONGOING_EVENT 通知放置在正在运行
FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应

   
    defaults 设置默认值

DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等
DEFAULT_LIGHTS 使用默认闪光提示
DEFAULT_SOUND 使用默认提示声音
DEFAULT_VIBRATE 使用默认手机震动

  contentView 拉下通知栏后,通知条显示视图,类型是RemoteView;


 contentIntent 点击通知条控件时,响应的意图


   一些常用的方法

    构造方法:

     public Notification (int icon, CharSequence tickerText, long when),如果使用属性的方式设置这些值,那也可以使用无参构造函数
  
  在API11之后使用Notification.builder()创建

   setLatestEventInfo(Context context,CharSequence title, CharSequence content, PendingIntent intent);
             本方法用于显示通知栏下拉后,通知条的内容。

 PendingIntent类

PendingIntent这个类用于处理即将发生的事情。

该对象的获取方式为, PendingIntent.getActivity(Context context,int requestCode,Intent intent,int flags);requsetCode和flags一般默认设置为0;


下面用上面提到的知识,写一个简单的通知(基于API11之前):

public void showBaseNotification() {NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);Notification notify = new Notification();notify.icon = R.drawable.ic_launcher;notify.tickerText = "您有新短消息,请注意查收!";notify.when = System.currentTimeMillis();PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,new Intent(this, MainActivity.class), 0);notify.setLatestEventInfo(this, "Notification Title","This is the notification message", pendingIntent);notify.number = 1;notify.flags |= Notification.FLAG_AUTO_CANCEL; // 通过通知管理器来发起通知。如果id不同,则每click,在statu那里增加一个提示manager.notify(1, notify);}

 基于API11之后:

	public void showNotification() {NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);NotificationCompat.Builder nb = new NotificationCompat.Builder(getApplicationContext()).setContentIntent(PendingIntent.getActivity(MainActivity.this, 0,new Intent(this, MainActivity.class),PendingIntent.FLAG_UPDATE_CURRENT)).setAutoCancel(true).setContentTitle("test title").setContentText("message").setSmallIcon(R.drawable.ic_launcher).setLights(Color.RED, 600, 1000).setVibrate(new long[] { 0, 200, 300, 500 }).setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));manager.notify(1, nb.build());}



   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis参数传入集合之foreach动态sql

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指…

“睡服”面试官系列第四篇之字符串的扩展(建议收藏学习)

目录 字符串的扩展 1. 字符的 Unicode 表示法 2. codePointAt() 3. String.fromCodePoint() 4. 字符串的遍历器接口 5. at() 6. normalize() 7. includes(), startsWith(), endsWith() 8. repeat() 9. padStart(),padEnd() 10. 模板字符串 11. 实例&…

Chapter 5 Exercises Problems

转载于:https://www.cnblogs.com/momoko/p/4931714.html

Android之Notification制作多媒体控制器

上一篇讲述了Notification的基础用法,本篇将介绍,自定义通知栏,并利用讲到的内容,实现一个简单的音乐播发器。 1.自定义通知的实现; Notification有一个contentView属性,该属性接受的对象是RemoteView对象&…

MyBatis 多表联合查询及优化

关于优化 对于优化嘛,我这里简单的提几点,大家可以考虑一下。首先,就是对表的设计,在设计表初期,不仅仅要考虑到数据库的规范性,还好考虑到所谓的业务,以及对性能的影响,比如&#x…

React Native windows环境安装遇到的坑

在官方中文文档中(http://reactnative.cn/docs/0.37/getting-started.html)有一段话是:使用Chocolatey来安装NodeJS。注意,目前已知Node 7.1版本在windows上无法正常工作,请注意避开这个版本! 如何避开&…

linux指令查看tomcat日志

实际开发中经常遇到查看远程tomcat日志,来查找原因:因此总结了一些常用的linux指令 1、先切换到:cd usr/local/tomcat5/logs 2、tail -f catalina.out3、这样运行时就可以实时查看运行日志了 Ctrlc 是退出tail命令。 其他常用的linux指令整理&#x…

iptables对请求的URL作IP访问控制

服务器运行环境是Tomcat,现在要实现的目的是,只允许特定的IP访问某个目录,一种方法是在tomcat配置文件server.conf中,使用RemoteAddrValve对虚拟主机做访问控制。另外一种方法可以通过iptables规则。个人比较喜欢iptables例如&…

React-Native填坑之TextInput value属性

TextInput用法就不多讲了,主要记录下遇到的一个怪问题。 背景:项目需要开发一个充值页面,需要一个输入框,然后几个按钮,输入框是允许用户自己输入任意金额,按钮是可以让用户快捷选择金额。那么问题来了&…

Spring的特点

Spring框架Spring框架是一个分层架构,有7个定义良好的模块组成spring模块构建在核心容器智之上, 核心容器定义了创建、 配置、和管理bean的方式组成spring框架的每个模块(或组件)都可以单独存在, 或者与其他一个或多个模块联合实现 模块如下: 1--核心容器 核心容器提供spring框…

MySQL对一行多列求和

SUM函数的语法是: SELECT SUM(expression ) FROM tables WHERE predicates; 表达式可以是一个数值字段或公式。 SELECT column1 column1 column1 …… column1 AS Total FROM table

mybatis判断集合为空或者元素个数为零

mybatis判断集合为空或者元素个数为零&#xff1a; <if test"mlhs ! null and mlhs.size() ! 0">and t.mlh_name not in <foreach collection"mlhs" item"item1" open"(" close")" index"i" separator&…

React-Native 填坑之ListView(item更新)

一 背景 效果图如下&#xff1a;二 解决办法 我的目的是实现单选item&#xff0c;正常情况设置一个state变量来保存选中的Index,在每次点击item的时候改变index就OK&#xff01;但是&#xff0c;我想的太天真了。this.setState()只能渲染外部组件&#xff0c;而ListView子组件…

锋利的jQuery--编写jQuery插件(读书笔记五)[完结篇]

1.表单验证插件Validation2.表单插件Form3.动态事件绑定插件livequery可以为后来的元素绑定事件类似于jQuery中的live()方法4.jQuery UI5.jQuery Cookie6.遮罩层插件:thickbox7.编写jQuery插件<1>编写插件的目的&#xff1a;给已经有的一些列方法或函数做一个封装&#x…

Java中的注解以及应用 @Deprecated @SupressWarning @Override

Annotation注解在 Java 中有着很广泛的,他是做为一种标识 为javac所识别,。每一个注解 都对应这一个Java类 在java.lang包中 有三个注解 分别是Deprecated SuppressWarning Override 在使用 注解前必须要在 注解类前面加上 每增加一个注解 就意味着产生了一个注解…