关于 PendingIntent 和 Notification 以及 sendTextMessage

简介:  Android的状态栏通知(Notification) 如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息。 步骤: 1 获取通知管理器NotificationManager,它也是一个系统服务 2 建立通知Notificati...

 Android的状态栏通知(Notification)

如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息。

步骤:

1 获取通知管理器NotificationManager,它也是一个系统服务

2 建立通知Notification notification = new Notification(icon, null, when);

3 为新通知设置参数(比如声音,震动,灯光闪烁)

4 把新通知添加到通知管理器

发送消息的代码如下:

//获取通知管理器

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)

int icon = android.R.drawable.stat_notify_chat;

long when = System.currentTimeMillis();//通知发生的时间为系统当前时间

//新建一个通知,指定其图标和标题

Notification notification = new Notification(icon, null, when);//第一个参数为图标,第二个参数为短暂提示标题,第三个为通知时间

notification.defaults = Notification.DEFAULT_SOUND;//发出默认声音

notification.flags |= Notification.FLAG_AUTO_CANCEL;//点击通知后自动清除通知

Intent openintent = new Intent(this, OtherActivity.class);

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, openintent, 0);//当点击消息时就会向系统发送openintent意图

notification.setLatestEventInfo(this, “标题”, “我是内容", contentIntent);

mNotificationManager.notify(0, notification);//第一个参数为自定义的通知唯一标识

 

重点是setLatestEventInfo( )方法的最后一个参数!!!!它是一个PendingIntent!!!!!!!!!

这里使用到了PendingIntent(pend本意是待定,不确定的意思)

PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前ApplicationContext。正由于PendingIntent中保存有当前ApplicationContext,使它赋予带他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent

 

PendingIntent的一个很好的例子:

SmsManager的用于发送短信的方法:

sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent);

第一个参数:destinationAddress 对方手机号码

第二个参数:scAddress 短信中心号码 一般设置为空

第三个参数:text 短信内容

第四个参数:sentIntent判断短信是否发送成功,如果你没有SIM卡,或者网络中断,则可以通过这个itent来判断。注意强调的是“发送”的动作是否成功。那么至于对于对方是否收到,另当别论

第五个参数:deliveryIntent当短信发送到收件人时,会收到这个deliveryIntent。即强调了“发送”后的结果

就是说是在"短信发送成功""对方收到此短信"才会激活 sentIntentdeliveryIntent这两个Intent。这也相当于是延迟执行了Intent

 

相关文章
|
7月前
|
数据可视化 JavaScript 前端开发
WebSocket调试神器对决:Apipost凭何碾压Apifox?
在实时交互需求日益增长的今天,WebSocket协议成为股票行情推送、游戏交互和IM系统等场景的必备技术。然而,传统调试工具效率低下,难以满足开发者需求。Apipost凭借原生协议支持、智能消息解析与零代码文档生成,全面超越竞品Apifox。从快速建立连接、高效消息分组到自动化文档输出,Apipost重构了WebSocket调试体验,为开发者带来革命性生产力提升。在GraphQL、Socket.IO等新技术浪潮下,选择得力工具至关重要。
|
Linux 编译器 数据处理
深入了解Linux命令ld.gold:快速链接器的奥秘
`ld.gold`是GNU的快速链接器,设计用于加速大型项目的链接,尤其擅长并行处理和增量链接。它与标准的`ld`高度兼容,可通过`-fuse-ld=gold`选项启用。例如,`gcc -o my_program file1.c file2.c file3.c -Wl,--ld-as-needed -fuse-ld=gold`命令使用`ld.gold`链接多个源文件。最佳实践包括确保环境支持、利用多线程和启用增量链接。
|
12月前
|
机器学习/深度学习 自然语言处理 数据挖掘
从理论到实践:详解GraphRAG框架下的多模态内容理解与生成
【10月更文挑战第10天】随着多媒体内容的爆炸性增长,如何有效地理解和生成跨模态的数据(如图像、文本和视频)变得越来越重要。近年来,图神经网络(GNNs)因其在处理非结构化数据方面的强大能力而受到广泛关注。在此背景下,Graph Retrieval-Augmented Generation (GraphRAG) 框架作为一种新的方法,通过结合图检索和生成模型来提升多模态内容的理解与生成效果。本文将深入探讨GraphRAG的基本原理、核心组件以及实际应用,并通过代码示例展示其在多媒体内容处理中的潜力。
1573 0
|
Python
Python中如何定义函数 以及实参和形参的区别
Python中如何定义函数 以及实参和形参的区别
359 1
|
机器学习/深度学习 人工智能 算法
深度学习在医学影像诊断中的应用与挑战
传统医学影像诊断一直是医学领域的重要组成部分,但其依赖于医生的经验和技能,存在着诊断准确性不高和效率低下的问题。近年来,随着深度学习技术的发展,越来越多的研究表明,深度学习在医学影像诊断中具有巨大的潜力。本文将探讨深度学习在医学影像诊断中的应用现状、挑战和未来发展趋势。
218 0
|
监控 负载均衡 算法
如何确保网络的服务质量 (QoS)
【8月更文挑战第24天】
634 0
|
消息中间件
rabbitmq每小时自动重启
rabbitmq每小时自动重启
863 2
rabbitmq每小时自动重启
|
机器学习/深度学习 编解码 自动驾驶
【论文解读】MV3D-Net 用于自动驾驶的多视图3D目标检测网络
​MV3D-Net融合了视觉图像和激光雷达点云信息;它只用了点云的俯视图和前视图,这样既能减少计算量,又保留了主要的特征信息。随后生成3D候选区域,把特征和候选区域融合后输出最终的目标检测框。 论文地址:Multi-View 3D Object Detection Network for Autonomous Driving 开源代码:GitHub - bostondiditeam/MV3D: Multi-View 3D Object Detection Network for Autonomous Driving
1111 0
|
存储 缓存 NoSQL
Redis的内存淘汰策略是什么?
【4月更文挑战第2天】Redis内存淘汰策略在内存满时,通过删除旧数据为新数据腾空间。策略包括:volatile-lru/LFU(基于LRU/LFU算法淘汰有过期时间的键),volatile-random/ttl(随机/按TTL淘汰),allkeys-lru/LFU(所有键的LRU/LFU),allkeys-random(随机淘汰所有键),以及noeviction(不淘汰,返回错误)。选择策略要考虑访问模式、数据重要性和性能需求。
478 0
|
存储 人工智能 边缘计算
马斯克星链与芯事:30亿炸出卫星互联网革命,GPU算力创无限可能!
据最新消息,马斯克“千人上火星计划”又一次未能如愿。据不完全统计,他在星舰项目上投入至少30亿美元,总投入超过200亿人民币。然而,尽管投入巨大,星舰研发道路仍然充满坎坷。早在今年4月,运力超过150吨的“史上最强运力”火箭在发射后几分钟内就在夜空中崩裂解体。自4月首飞以来,SpaceX对星舰进行1000多次改进。在11月18日21点,星舰33台推进器完成检测,进入预发射状态。发射3分钟后,飞船与推进器成功分离,9分钟后按照预定程序关闭引擎。然而,就在SpaceX团队为这一重要里程碑庆祝时,二级火箭发生故障,导致飞船失去联系。虽然路透社将此次任务定义为“一次失败的发射”,但SpaceX团队和马