Android Notification通知使用(从基本到高级)

目录

一、通知的基本使用

(1)、效果图

(2)、使用步骤

(3)、细节使用

二、通知的进阶使用

(1)、设置声音

(2)、设置振动

(3)、设置LED灯闪烁

(4)、进行默认效果设置

三、通知的高级使用

(1)、设置富文本信息

(2)、设置带有图片消息

(3)、设置通知重要程度


一、通知的基本使用

(1)、效果图

在这里插入图片描述

(2)、使用步骤

1、首先需要一个NotificationManager来进行管理,可以调用Context的getSystemService方法获取,这里传入一个Context。NOTIFICAATION_SERVICE即可。

NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

2、需要使用一个Builder构造器来创建Notification对象,由于API不同会造成不同版本的通知出现不稳定的问题, 所以这里使用NotificationCompat类来兼容各个版本。

Notification notification = new NotificationCompat.Builder(MainActivity.this).build();

3、基本设置

.setContentTitle("这是测试通知标题")  //设置标题
.setContentText("这是测试通知内容") //设置内容
.setWhen(System.currentTimeMillis())  //设置时间
.setSmallIcon(R.mipmap.ic_launcher)  //设置小图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))   //设置大图标

4、调用notify()让通知显示出来(第一个参数是ID, 保证每个通知所指定的id都是不同的,第二个参数是notification对象)

manager.notify(1,notification);

(3)、细节使用

  <一>、跳转功能:
使用PendingIntent进行通知点击跳转功能。
PendingIntent的用法:
(1)、通过getActivity()、getBroadcast()、getService()方法获取实例
(2)、参数(Context context, int requestCode, Intent intent, int flags)
第一个参数:Context
第二个参数:requestCode 一般用不到 ,通常设置为0
第三个参数:intent
第四个参数:flags 用于确定PendingIntent的行为。这里传0就行
(3)、使用方法

 Intent intent = new Intent(MainActivity.this,NotificationActivity.class);PendingIntent pi = PendingIntent.getActivity(MainActivity.this,0,intent,0);NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);Notification notification = new NotificationCompat.Builder(MainActivity.this).setContentTitle("这是测试通知标题")  //设置标题.setContentText("这是测试通知内容") //设置内容.setWhen(System.currentTimeMillis())  //设置时间.setSmallIcon(R.mipmap.ic_launcher)  //设置小图标  只能使用alpha图层的图片进行设置.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))   //设置大图标.setContentIntent(pi)//                       .setAutoCancel(true).build();manager.notify(1,notification);

  <二>、通知取消:
我们发现当点击查看通知后,通知栏中还保留着通知图标,我们怎么取消呢
(1)、使用setAutoCancel(true)

Notification notification = new NotificationCompat.Builder(MainActivity.this)....setAutoCancel(true) //设置为自动取消.build();manager.notify(1,notification);

(2)、在跳转后的Activity中

 NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);manager.cancel(1);

这里的cancle传入的是一个1,就是我们创建Notification中指定的通知的ID


二、通知的进阶使用

都是一行代码进行设置, 这里就不分开写了

 Notification notification = new NotificationCompat.Builder(MainActivity.this)....setSound(Uri.fromFile(new File("/system/media/audio/ringtones/Luna.ogg"))) //设置通知提示音.setVibrate(new long[]{0,1000,1000,1000}) //设置振动, 需要添加权限  <uses-permission android:name="android.permission.VIBRATE"/>.setLights(Color.GREEN,1000,1000)//设置前置LED灯进行闪烁, 第一个为颜色值  第二个为亮的时长  第三个为暗的时长.setDefaults(NotificationCompat.DEFAULT_ALL)  //使用默认效果, 会根据手机当前环境播放铃声, 是否振动.build();manager.notify(1,notification);

三、通知的高级使用

(1)、设置富文本信息

当我们使用setContentText的时候, 内容为很长的字符串, 显示结果是这样的:
在这里插入图片描述
内容显示不全。如果产品就要显示完全的内容文本我们怎么办。
可以使用setStyle()

 Notification notification = new NotificationCompat.Builder(MainActivity.this)....setStyle(new NotificationCompat.BigTextStyle().bigText("这是一段很长的文字很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长"))                      .build();manager.notify(1,notification);

我们在setStyle()方法中创建了NotificationCompat.BigTextStyle对象。这个对象就是用于封装长文本信息的,调用它的bigText()方法将文字传入就行。我们看一下显示效果。
在这里插入图片描述

(2)、设置带有图片消息

在这里插入图片描述

 Notification notification = new NotificationCompat.Builder(MainActivity.this)....setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)))             .build();manager.notify(1,notification);

通知内加入图片(大图)中的调用方法

(3)、设置通知重要程度

 Notification notification = new NotificationCompat.Builder(MainActivity.this)....setPriority(NotificationCompat.PRIORITY_MAX).build();manager.notify(1,notification);

setPriority方法接收一个整形参数用于设置这条通知的重要程度, 有五个值可以选择
PRIORITY_DEFAULT:表示默认重要程度,和不设置效果一样
PRIORITY_MIN:表示最低的重要程度。系统只会在用户下拉状态栏的时候才会显示
PRIORITY_LOW:表示较低的重要性,系统会将这类通知缩小,或者改变显示的顺序,将排在更重要的通知之后。
PRIORITY_HIGH:表示较高的重要程度,系统可能会将这类通知方法,或改变显示顺序,比较靠前
PRIORITY_MAX:最重要的程度, 会弹出一个单独消息框,让用户做出相应。
在这里插入图片描述
设置为MAX显示情况。
好了,这些就是通知栏的使用了,谢谢阅读。

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

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

相关文章

聚观早报 |ChatGPT之父称AI可能灭绝人类;Kindle本月关闭电子书店

今日要闻&#xff1a;马斯克到访特斯拉上海超级工厂&#xff1b;ChatGPT之父称AI可能灭绝人类&#xff1b;Kindle本月关闭电子书店&#xff1b;FF91将进入交付阶段&#xff1b;iPhone14最高降1900元 马斯克到访特斯拉上海超级工厂 6 月 1 日消息&#xff0c;据航班APP信息显示…

02.25 Chat Servers Outgoing Traffic聊天服务流量输出

聊天服务器传出流量|断续器 (jxnu.edu.cn)https://acs.jxnu.edu.cn/problem/CF5A 描述&#xff1a; Polycarp is working on a new project called "Polychat". Following modern tendencies in IT, he decided, that this project should contain chat as well. To…

聊天时为什么配置了打开半截微型聊天窗不显示半截呢?

问&#xff1a;什么是半截微型聊天窗呢&#xff1f; 回答&#xff1a;当你和某人聊天的时候&#xff0c;弹出的窗口&#xff0c;然后一起聊天&#xff0c;就是聊天窗口。这里的半截微型聊天窗口指&#xff0c;显示的时候&#xff0c;聊天半截微型聊天窗就是小窗口聊天&#xff…

数据中台实践指南(1.0版)

❑ 导 读 数据中台的建设前提条件是有可以让数据产生价值的业务场景。 全文共计1353字&#xff0c;预计阅读时间8分钟 来源 | CCSA TC601 大数据技术标准推进委员会 编辑 | 蒲蒲 近日&#xff0c;由大数据技术标准推进委员会指导和组织&#xff0c;阿里云、中国移动、中国联…

心法利器[87] | 填志愿:AI算法方向过来人的建议

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

用ChatGPT快速搞定开发、测试、运维实战教程来了,一点代码都不用写!

《面向ChatGPT全栈开发实战》专栏上线了&#xff0c;写这个专栏的过程中&#xff0c;我真有点恐慌&#xff0c;感觉我得失业&#xff0c;因为ChatGPT实在太牛逼了。 注意&#xff1a;由于账号越来难注册&#xff0c;仅限前200名送ChatGPT独立账号&#xff0c;没有的抓紧了。 Ch…

论文辅助工具

1.微信小程序–写作蛙 2.秘塔写作猫 https://xiezuocat.com 3.ChatGPT

谷歌要完,百度也危了

文 | 天于刀刀 当我们在抱怨搜索引擎的时候我们具体在说些什么&#xff1f; 也许是饱受诟病的广告&#xff1f;或者是不合理的网页排序&#xff1f;又或是一种最直观的感觉——不好使。 但是从来没有人抱怨过搜索引擎这一个模式。 尽管这些年&#xff0c;也诞生一些诸如Magi这样…

软件工程 案例分析作业——Inscode

软件工程实践——软件评测 课题A&#xff09;Inscode - coding with inspiration这个作业要求在哪里软件工程 案例分析作业这个作业的目标完成软件调研评测、软件分析、针对软件提出建议和规划其他参考文献《构建之法》 文章目录 软件工程实践——软件评测第〇部分 BUG量化标准…

作为一个 IT 行业的学生或从业者,遇到问题我们应该去哪里寻找答案呢?

现阶段IT行业最受欢迎的网站 一、CSDN开发者互助问答社区_程序员有问必答-CSDN问答1、网站地址2、功能展示1. 问答界面2. 优点3. 缺点4. 问题回复时间 二 、Stack Overflow1、网站地址2、功能展示1. 问答界面2. 优点3. 缺点4. 问题回复时间 三、SegmentFault 思否1、网站地址2、…

孤独患者的树洞?AI情感陪伴是如何实现的?

一、人工智能大模型 自ChatGPT发布以来&#xff0c;越来越多的中国企业和研究机构扎堆冲入AI大模型赛道&#xff0c;试图在自然语言处理、机器翻译、问答等方面取得重大突破。在未来&#xff0c;这些模型有机会应用于金融、医疗、电商等各领域。 人工智能大模型的应用不仅可以…

面向新手的git实战教程

嗨&#xff01;我是团子&#xff0c;大家好久不见呀~ 记得之前在网上学习git相关知识时&#xff0c;看到的文章大部分都是讲解git的基本命令有哪些&#xff0c;用处是什么&#xff0c;但是自己真正上手使用git时&#xff0c;仍然无从下手。 所以今天就想从初始化一个git仓库开始…

ChatGPT提示词工程师教程-指南

参考视频&#xff1a;chatGPT提示词工程进阶教学 | 第二期&#xff1a;如何更清晰、更具体地书写提示词 (Lesson02 guidelines)_哔哩哔哩_bilibili 本篇主要提出两个原则&#xff1a;如何更清晰、具体地书写提示词&#xff1b;给模型充足的思考时间。 原则1&#xff1a;如何更…

从0到1,入门到进阶玩转AI——Stable Diffusion超详细教程(一)

前沿 目前市面上的AI主要集中在两方面&#xff0c;一方面是AI 作图&#xff08;代表产品&#xff1a;Midjourney和Stable-Diffusion&#xff09;&#xff0c;一方面是AI应答&#xff08;代表产品&#xff1a;ChatGPT&#xff09;&#xff0c;本文主要针对AI作图进行探索。 由于…

nvm安装步骤

注意事项&#xff1a; 1、不能安装任何node版本&#xff08;如存在请删除后安装nvm&#xff09;; 安装步骤&#xff1a; 1、下载nvm 解压后点击exe文件进行安装&#xff1a; &#xff08;1&#xff09;同意相关协议内容&#xff1a; 2、点击下一步安装到 D:\NVM 下 3、创建nod…

【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答

WebGPT: 基于人类反馈的浏览器辅助问答 《WebGPT: Browser-assisted question-answering with human feedback》 论文地址&#xff1a;https://arxiv.org/pdf/2112.09332.pdf 相关博客 【自然语言处理】【大模型】BLOOM&#xff1a;一个176B参数且可开放获取的多语言模型 【自然…

解决华为手机破解巧影软件无法使用

原文地址&#xff1a;https://blog.csdn.net/dx147305114/article/details/87863052 本次解决的是部分巧影破解软件的问题&#xff0c;在网上看了很多都是关于华为手机无法使用破解巧影的问题&#xff0c;整理了一下解决方案&#xff0c;供大家参考。 1、使用的破解巧影版本 …

华为服务器rh-2286远程控制无法使用

前言 "都是废话“ 在咸鱼购买的华为服务器rh2286&#xff0c;功耗太大没怎么用&#xff0c;在家闲置&#xff0c;上个月去用下发现远程控制功能不能使用&#xff0c;这不难受坏啊&#xff0c;我可不想在机房给这东西装系统&#xff0c;嗡嗡的吵得脑袋都疼&#xff0c;因型…

华为eNSP的介绍与简单使用

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台&#xff0c;主要对企业网络路由器、交换机进行软件仿真&#xff0c;完美呈现真实设备实景&#xff0c;支持大型网络模拟&#xff0c;让…

华为ipop使用教程_华为内部远程工具——IPOP,了解一下

之前推荐了xshell、mobaxterm等&#xff0c;今天就推一个之前华为内部使用的远程工具&#xff0c;现在部分研发依然在使用&#xff0c;这款软件仅2M大小&#xff0c;但是功能非常强大&#xff0c;应证小巧而不简单&#xff0c;虽然没有那么好的UI界面&#xff0c;实用性比较高 …