android 通知传值,Android消息通知(notification)和PendingIntent传值

Android支持Toast和NotificationManager两种通知方式,前者相当于一个定时关闭的对话框,后者是在状态栏上显示一条消息。Toast和Notification都可以随时取消。

Toast

A toast is a view containing a quick little message for the user. The toast class helps you create and show those. Toast的使用很简单:

Toast.makeText(this, "Service destroyed…", Toast.LENGTH_LONG).show();

NotificationManager

NotificationManager负责通知用户事件的发生。

NotificationManager有三个公共方法:

1.    cancel(int id)    取消以前显示的一个通知.假如是一个短暂的通知,试图将隐藏,假如是一个持久的通知,将从状态条中移走.

2.    cancelAll()    取消以前显示的所有通知。

3.    notify(int id, Notification notification)     把通知持久的发送到状态条上.

NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

Notification代表着一个通知.

Notification的属性:

audioStreamType     当声音响起时,所用的音频流的类型

contentIntent     当通知条目被点击,就执行这个被设置的Intent.

contentView     当通知被显示在状态条上的时候,同时这个被设置的视图被显示.

defaults     指定哪个值要被设置成默认的.

deleteIntent     当用户点击"Clear All Notifications"按钮区删除所有的通知的时候,这个被设置的Intent被执行.

icon     状态条所用的图片.

iconLevel     假如状态条的图片有几个级别,就设置这里.

ledARGB    LED灯的颜色.

ledOffMS    LED关闭时的闪光时间(以毫秒计算)

ledOnMS     LED开始时的闪光时间(以毫秒计算)

number     这个通知代表事件的号码

sound     通知的声音

tickerText    通知被显示在状态条时,所显示的信息

vibrate     振动模式.

when     通知的时间戳.

Notification的公共方法:

describeContents()    Describe the kinds of special objects contained in this Parcelable's marshalled representation.

setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) 设置Notification留言条的参数

writeToParcel(Parcel parcel, int flags)    Flatten this notification from a parcel.

toString() …………….

将Notification发送到状态条上:

e3e5e807088b1a7ffd16ab097d8cfb43.gif

Notification notification =  Notification(R.drawable.icon, "Service started", System.currentTimeMillis());

PendingIntent contentIntent = PendingIntent.getActivity(, 0,  Intent(, Main.), 0);

notification.setLatestEventInfo(, "Test Service", "Service started", contentIntent);

nm.notify(R.string.hello, notification);

e3e5e807088b1a7ffd16ab097d8cfb43.gif

Notification的取消

nm.cancel(R.string.hello);

完整代码实现

e3e5e807088b1a7ffd16ab097d8cfb43.gif

addNotificaction(String pId,String pTtitle,String pContent) {

NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

Notification notification =  Notification();

notification.icon = R.drawable.icon;

notification.tickerText = pTtitle;

notification.defaults=Notification.DEFAULT_SOUND;

notification.audioStreamType= android.media.AudioManager.ADJUST_LOWER;

Intent intent =  Intent(, AndroidMain.);

PendingIntent pendingIntent = PendingIntent.getActivity(, 0, intent, PendingIntent.FLAG_ONE_SHOT);

notification.setLatestEventInfo(, pTtitle, pContent, pendingIntent);

manager.notify(id, notification);

}

e3e5e807088b1a7ffd16ab097d8cfb43.gif

Pendingintent传值问题

pendingintent传值经常获取到的值是第一次的值或者null,这个跟第二个参数和最后一个参数选择有关系。

PendingIntent pendingIntent = PendingIntent.getActivity(this, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);

注:如果所要启动的Activity是单例模式,其传值方法请看onNewIntent调用时机

总结一下pendingIntent的常用FLAG标签:

FLAG_ONE_SHOT:this PendingIntent can only be used once. If set, after send() is called on it, it will be automatically canceled for you and any future attempt to send through it will fail.

FLAG_NO_CREATE:if the described PendingIntent does not already exist, then simply return null instead of creating it.

FLAG_CANCEL_CURRENT:if the described PendingIntent already exists, the current one is canceled before generating a new one. You can use this to retrieve a new PendingIntent when you are only changing the extra data in the Intent; by canceling the previous pending intent, this ensures that only entities given the new data will be able to launch it. If this assurance is not an issue, consider FLAG_UPDATE_CURRENT.

FLAG_UPDATE_CURRENT: if the described PendingIntent already exists, then keep it but its replace its extra data with what is in this new Intent. This can be used if you are creating intents where only the extras change, and don't care that any entities that received your previous PendingIntent will be able to launch it with your new extras even if they are not explicitly given to it.

上面4个flag中最经常使用的是FLAG_UPDATE_CURRENT,因为描述的Intent有更新的时候需要用到这个flag去更新你的描述,否则组件在下次事件发生或时间到达的时候extras永远是第一次Intent的extras。使用FLAG_CANCEL_CURRENT也能做到更新extras,只不过是先把前面的extras清除,另外FLAG_CANCEL_CURRENT和FLAG_UPDATE_CURRENT的区别在于能否新new一个Intent,FLAG_UPDATE_CURRENT能够新new一个Intent,而FLAG_CANCEL_CURRENT则不能,只能使用第一次的Intent。

另外两flag就比较少用,利用FLAG_ONE_SHOT获取的PendingIntent只能使用一次,再使用PendingIntent也将失败,利用FLAG_NO_CREAT获取的PendingIntent若描述的Intent不存在则返回NULL值.

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

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

相关文章

基于java SSM医药住院管理系统设计和实现

本项目演示链接地址 》 主要功能设计:入院管理,登记、出院登记、查询、转房、病房管理、病房价格调整、缴费和记录、护理、住院历史、统计、药品管理、医生、用户、系统 springMVC spring mybatis jquery js css tomcat mysql等技术 主要功能截图如下…

nodejs+html转换pdf,Nodejs 中将html转换成pdf文件

Nodejs 中将html转换成pdf文件,Nodejs Convert html into pdf1. 下载phantomjs.exe,将该文件放在根目录2. 编写pdf.js文件(在github上下载phantomjs相关的测试文件,仿照rasterize.js文件编写pdf.js文件)3. Nodejs调用phantomjs,将html页面转换…

android 接口403,403: 请求被理解,但它被拒绝 Twitter Android_android_开发99编程知识库...

我正在尝试从安卓上推 Twitter 。 现在,我已经在 dev.twitter 上创建一个应用程序,并从下载示例代码 ,并使用我的应用密钥更新两个键。现在我运行代码身份验证帐户和 in,这个tweet包含图像和文本两个图像在URL中定义。 现在我第一…

android回收站目录详解,android - 如何在回收站适配器外部的回收站视图中获取当前商品的位置 - 堆栈内存溢出...

我在整个屏幕上显示一个回收站视图,该回收站视图只有一个图像视图,我想知道如何在回收站适配器之外获取屏幕上显示的imageview的位置。我试图实现一个接口,但结果不准确。我想立即保存当前位置。我的回收站适配器:public class Re…

基于jsp+Spring boot+mybatis的图书管理系统设计和实现

🍅 作者主页:Java李杨勇 🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 前言 随着网络技术的发…

二叉树为空意味着二叉树_不怕面试被问了!二叉树算法大盘点

作者 | BoCong-Deng题图 | 视觉中国出品 | CSDN博客树结构对于程序员来说应该不陌生,特别是二叉树,基本只要接触算法这一类的都一定会碰到的,所以我打算通过一篇文章,对二叉树结构的相关算法进行总结汇总,思路和代码实…

android 开发环境以及hello world,Android Studio开发环境搭建和HelloWorld

先下一个Pie吧然后发现run的位置是灰色的,而且这个Add Configuration没有下拉列表我去百度了一下这个问题,它让我在下拉列表里找APP???百度上面没有找到关于这个的解答,我就想是不是我的安装包出问题了,于是我就卸了重新装彻底…

基于jsp+mysql+Spring+hibernate+在线学习交流论坛平台

本项目演示链接地址 》 主要功能模块设计: 管理员角色包含以下功能:管理员登录,发布公告,修改资料,查看新帖,查看精华帖请求,封锁用户,创建讨论区等功能。 用户角色包含以下功能:按分类查看,用户登录,查看帖子详情,查看我的帖子,提交帖子,资料…

基于jsp+Spring+mybatis的SSM企业门户网站设计和实现

本项目演示链接地址 》 前言 人类社会已经迈入了21世纪,信息技术的浪潮也冲击着社会的方方面面。以计算机互联网为核心的科学技术为社会各行各业提供了前所未有的机会和发展潜力。生产业也不例外。互联网走到今天,也有五年的光景了,之间经历了…

html+字体图标找不到字体,bootstrap中不显示字体图标问题怎么解决?

bootstrap中不显示字体图标的原因是什么?怎么解决?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。你在使用bootstrap字体图标的时候,是否遇到引用本地Bootstrap文件无法…

buffsize 缓冲区的大小多少合适_对于Redis性能指标监控!你了解多少?

监控指标性能指标:Performance内存指标: Memory基本活动指标:Basic activity持久性指标: Persistence错误指标:Error监控方式redis-benchmarkredis-statredis-fainaredisliveredis-climonitorshowlog1.get:获取慢查询日志2.len&am…

java怎么确定数据在区间内_处理数据时,单元格内内容太多无法计数怎么破?...

在职场办公中,处理数据时有时会遇到古里古怪的数据源,比如从系统导出来的或是表哥表弟们录入数据的不规范。从而使得后续处理起来比较棘手。规范数据源很重要!话不多说,先来看看今天要分享的案例:每个订单下有多种物料…

html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用

从app中跳转到appStore中,分为1.取得app在appStore中的链接地址mac打开iTunes,在右上角中的搜索框中输入你的应用名称。在弹出的菜单中,选择复制链接,得到该应用的链接地址:https://itunes.apple.com/cn/app/jie-zou-da-shi/id493…

上下级平台之间数据同步方案_Alluxio与底层存储系统之间的元数据同步机制

请点击上方蓝字,关注我们哦!作者简介:林意群,Apache Hadoop PMC member,Apache Ozone PMC member,拥有多年参与开源社区经验,主要专注于存储领域的研究和学习,目前任eBay Hadoop tea…

python3dijkstra_python3 实现Dijkstra(迪杰斯特拉)最短路径算法

Dijkstra单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据…

基于java SSM图书管理系统简单版设计和实现

本项目演示链接地址 》 主要技术:后台采用技术: SSM框架(SpringMVC Spring Mybatis) 前台采用技术: div css 功能比较简单、适合学习使用 主要功能:登录、图书类型添加、图书类型列表、编辑和删除、图书上传。图书列表、导出…

樊登读书会终身成长读后感_终身成长读后感

当我们还是婴儿时,我们学习走路、说话,跌倒了、说错了,不会害怕和丢脸。后来,我们懂得了更多,反而怕这怕那,止步不前了。为什么呢?因为我们转变了思维模式。《终身成长》一书中提出了人的思维是…

html中的行内标签吗,HTML标签中行内元素和块级元素详解

本文主要和大家详细介绍了HTML常用的标签中行内元素和块级元素,需要的朋友参考下吧,希望能帮助到大家。块元素(block element) HTML标签分类明细* address - 地址* blockquote - 块引用* center - 举中对齐块* dir - 目录列表* p - 常用块级容易&#xf…

基于javaweb jsp+servlet学生宿舍管理系统设计和实现

本项目演示链接地址 》 主要技术:spring、jsp、servlet、mysql、tomcat 、jsp、jquery、css、c390 、cookie、session等基本技术实现 主要功能:不同角色登录、宿舍管理员管理、学生信息管理、宿舍信息管理、学生缺勤管理、修改密码和退出功能。 系统功能截图&…

html泰勒展开,【转载】泰勒展开式

泰勒展开式对于利用FPGA实现算法来说非常实用,可以将除法等对硬件不友好的运算转变为乘加操作。特此转载以下博文,原文标题及链接为:泰勒展开式 - guoxiang - 博客园https://www.cnblogs.com/guo-xiang/p/6662881.html数学中,泰勒…