Intent和PendingIntent的区别

深度解析 PendingIntent 及其与 Intent 的区别 什么是IntentIntent 在组件间被用于进行信息传递(例如 Activitiy, Service, Broadcast Receiver, Content Provider),从而调用不同的组件以完成我想要完成的事。而这里提到的信息是什么呢:是你想要做的事。举例来说吧:我想要在KFC点一份外卖,那么当这份信息被发送出去以后,KFC以外的外卖店都不会理我,只有KFC会接受这份信息,并且处理它, 阅读详情

intent英文意思是意图,pending表示即将发生或来临的事情。 
PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 

Intent 是及时启动,intent 随所在的activity 消失而消失。 
PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。正由于pendingintent中 保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前App一样的执行pendingintent里的 Intent, 就算在执行时当前App已经不存在了,也能通过存在pendingintent里的Context照样执行Intent。另外还可以处理intent执行后的操作。常和alermanger 和notificationmanager一起使用。 
Intent一般是用作Activity、Sercvice、BroadcastReceiver之间传递数据,而Pendingintent,一般用在 Notification上,可以理解为延迟执行的intent,PendingIntent是对Intent一个包装。 

Java代码 
  1. private void showNotify(){   
  2.         Notification notice=new Notification();   
  3.         notice.icon=R.drawable.icon;   
  4.         notice.tickerText="您有一条新的信息";   
  5.         notice.defaults=Notification.DEFAULT_SOUND;   
  6.         notice.when=10L;   
  7.         // 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒     
  8.         //notice.vibrate = new long[] { 100, 250, 100, 500 };出错?   
  9.         //notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, null, 0));   
  10. notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, new Intent(this,Activity2.class), 0));//即将跳转页面,还没跳转   
  11.         NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE);   
  12.         manager.notify(0,notice);   
  13.     }  
[java]  view plain copy
  1. private void showNotify(){  
  2.         Notification notice=new Notification();  
  3.         notice.icon=R.drawable.icon;  
  4.         notice.tickerText="您有一条新的信息";  
  5.         notice.defaults=Notification.DEFAULT_SOUND;  
  6.         notice.when=10L;  
  7.         // 100 毫秒延迟后,震动 250 毫秒,暂停 100 毫秒后,再震动 500 毫秒    
  8.         //notice.vibrate = new long[] { 100, 250, 100, 500 };出错?  
  9.         //notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, null, 0));  
  10. notice.setLatestEventInfo(this, "通知", "开会啦", PendingIntent.getActivity(this, 0, new Intent(this,Activity2.class), 0));//即将跳转页面,还没跳转  
  11.         NotificationManager manager=(NotificationManager)getSystemService(this.NOTIFICATION_SERVICE);  
  12.         manager.notify(0,notice);  
  13.     }  


1. GSM网络中android发送短信示例

Java代码 
  1. String msg ="你好,美女";   
  2. String number = "135****6784";   
  3. SmsManager sms = SmsManager.getDefault();   
  4.   
  5. PendingIntent pi = PendingIntent.getBroadcast(SmsActivity.this,0,new Intent(...),0);   
  6. sms.sendTextMessage(number, null, msg, pi, null);   
  7. Toast.makeText(SmsActivity.this,"发送成功",Toast.LENGHT_LONG).show();  
[java]  view plain copy
  1. String msg ="你好,美女";  
  2. String number = "135****6784";  
  3. SmsManager sms = SmsManager.getDefault();  
  4.   
  5. PendingIntent pi = PendingIntent.getBroadcast(SmsActivity.this,0,new Intent(...),0);  
  6. sms.sendTextMessage(number, null, msg, pi, null);  
  7. Toast.makeText(SmsActivity.this,"发送成功",Toast.LENGHT_LONG).show();  


代码解释 
      PendingIntent就是一个Intent的描述,我们可以把这个描述交给别的程序,别的程序根据这个描述在后面的别的时间做你安排做的事情 (By giving a PendingIntent to another application, you are granting it the right to perform the operation you have specified as if the other application was yourself,就相当于PendingIntent代表了Intent)。本例中别的程序就是发送短信的程序,短信发送成功后要把intent广播出去 。 
      函数SmsManager.sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)中参数解释: 
      1)PendingIntent sentIntent:当短信发出时,成功的话sendIntent会把其内部的描述的intent广播出去,否则产生错误代码并通过android.app.PendingIntent.OnFinished进行回调,这个参数最好不为空,否则会存在资源浪费的潜在问题; 
      2)PendingIntent deliveryIntent:是当消息已经传递给收信人后所进行的PendingIntent广播。 
      查看PendingIntent 类可以看到许多的Send函数,就是PendingIntent在进行被赋予的相关的操作。

Android Intent和PendingIntent的比较 Intent用于在组件之间传递消息和执行操作,而PendingIntent则是对Intent的封装,用于稍后执行操作,通常与系统级别的操作关联。在Android开发中,Intent和PendingIntent是两个重要的概念,用于实现组件之间的通信和交互。PendingIntent是对Intent的封装,它允许我们在稍后的时间点上执行Intent所描述的操作。在上述代码中,我们首先创建了一个Intent对象,用于启动目标Activity,并将消息作为额外数据传递。方法启动接收端Activity。 阅读详情

相关推荐

Android中pendingIntent与Intent的深入分析

主要介绍了Android中pendingIntent的深入分析的相关资料,需要的朋友可以参考下

简单聊聊 PendingIntent 与 Intent 的区别

到这里,PendingIntent的内容就讲完了,相信你对PendingIntent的理解已经超过绝大部分同学,你认同吗?

m0_64420071的博客 1986

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

Android 面试题:你说一下 PendingIntent 和 Intent 的区别?

从字面意思上理解,PendingIntent是一种延迟的Intent,表示一种延迟执行的意图操作。对,但又不完全对。一句话概括,PendingIntent一种是支持授权其他应用以当前应用的身份执行包装的Intent操作的系统特性。在这篇文章里,我将带你理解PendingIntent的使用方法、设计理念以及核心源码分析,相信阅读完这篇文章后你对PendingIntent的理解将超过绝大部分同学。...

pengxurui的博客 732

Anolis OS 23实战:5分钟搞定AI环境配置(含NVIDIA驱动一键安装)

本文详细介绍了如何在Anolis OS 23上快速配置AI开发环境,包括NVIDIA驱动的一键安装和TensorFlow、PyTorch等AI框架的部署。通过智能硬件适配引擎和优化后的二进制包,用户可在5分钟内完成传统需要数小时的配置工作,显著提升AI项目开发效率。

weixin_30335575的博客 535

自动驾驶中的多传感器融合实战:用卡尔曼滤波搞定毫米波雷达与摄像头航迹对齐

本文深入探讨了自动驾驶中多传感器融合的实战技术,重点介绍了如何使用卡尔曼滤波实现毫米波雷达与摄像头的航迹对齐。通过分析传感器特性差异、时空同步挑战及工程化实现步骤,提供了包括状态向量定义、观测矩阵设计和故障检测机制在内的完整解决方案,最终实现0.15米以内的高精度航迹对齐。

weixin_28728495的博客 410

Android应用开发之(你必须知道的Intent和PendingIntent的区别)

做Android应用开发的朋友,可能会经常用到Intent,有时会用到PendingIntent,两者究竟有什么区别呢? 今天Android IT给大家讲解一下两者的区别。 intent英文意思是意图,pending表示即将发生或来临的事情。  PendingIntent

518

PCIe信号眼图总是不开?手把手教你调CTLE和DFE参数(附实测波形对比)

本文详细解析了PCIe信号眼图调试中CTLE和DFE参数的优化方法,帮助硬件工程师解决眼图无法张开的问题。通过实际案例和步骤指导,介绍了如何调整CTLE直流增益和DFE抽头系数,提升接收端均衡器性能,确保信号完整性。

weixin_26805597的博客 214

Android基础——PendingIntent理解

1. PendingIntent认识 PendIntent其实是Intent的封装,这就带来了几个问题: 为什么要有PendingIntent?与Intent有什么区别? PendingIntent的应用场景主要有哪些? 它的内部是如何实现的? 1.1 与Intent的区别 Intent 是意图的意思。Android 中的 Intent 正是取自这个意思,它是一个消息对象,通过它,Andr...

zhewen的博客 3万+

Ubuntu 20.04下Cube-Studio云原生平台单机部署全攻略(附避坑指南)

本文详细介绍了在Ubuntu 20.04系统上单机部署Cube-Studio云原生平台的完整流程,包括环境准备、Docker配置、Rancher与Kubernetes集群部署以及Cube-Studio核心组件安装。特别提供了官方文档未涵盖的实战技巧和常见问题解决方案,帮助开发者高效完成部署并避免常见陷阱。

weixin_29313423的博客 464

学Simulink--环境感知场景实例:基于Simulink的毫米波雷达多目标跟踪仿真

本文介绍了基于Simulink的毫米波雷达多目标跟踪仿真系统,重点分析了FMCW雷达信号处理流程(Range/Doppler FFT、CFAR检测)和多目标跟踪算法(JPDA数据关联、EKF状态估计)。通过构建城市道路交叉场景,验证了系统在跟踪精度(位置误差<0.2m)、实时性(单帧处理24ms)和鲁棒性(ID切换率<5%)方面的性能优势,并提出了UKF滤波、多传感器融合等优化方向。该仿真系统为自动驾驶环境感知提供了实用的毫米波雷达跟踪解决方案。

amy_mhd的博客 92

Intent 和 PendingIntent 区别 .

intent 英文意思是意图,pending 表示即将发生或来临的事情。 PendingIntent 这个类用于处理即将发生的事情,比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroa...

YUZHIBOYI的专栏 1891

现代软件开发技术 | 第1章:Spring基础

Spring是一个轻量级Java 开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。

知识库搭建ing 455

PendingIntent和Intent的区别

Java代码 Notification n = new Notification(R.drawable.face_1, "Service启动", System.currentTimeMillis()); PendingIntent contentIntent = Pe...

chenyijie1529的博客 438

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 154

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

PendingIntent与Intent区别

PendingIntent与Intent区别 intent英文意思是意图,pending表示即将发生或来临的事情。  PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。  Intent 是及时启动,intent 随所在的activity 消失而消失。  PendingIntent 可以看作是对intent的包装,通常通过ge...

yihenghua的博客 527

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android Intent PendingIntent的区别

含义:intent英文意思是意图,pending表示即将发生或来临的事情。  PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。  Intent 是及时启动,intent 随所在的activity 消失而消失。  PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBro

成长的味道 1004

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android中的Intent和PendingIntent的区别

1、Intent和PendingIntent的区别 intent英文意思是意图,pending表示即将发生或来临的事情。 Intent是立即使用的,而PendingIntent可以等到事件发生后触发,PendingIntent可以cancel Intent在程序结束后即终止,而PendingIntent在程序结束后依然有效 PendingIntent自带Context,而I...

落岑博客 348

PendingIntent与Intent的区别

1 定义 Intent 表示一个目的,第一个参数表示所在类,第二个参数表示目标类。PendingIntent 即是一个Intent的描述,但是又与Intent有区别。 2 PendingIntent和Intent的区别         Intent 字面意思是意图,即我们的目的,我们想要做的事情,在activity中,我们可以立即执行它。        PendingIntent就是一个In

our2848884的专栏 783

Intent 和 PendingIntent 区别

intent 英文意思是意图,pending 表示即将发生或来临的事情。 PendingIntent 这个类用于处理即将发生的事情,比如在通知Notification中用于跳转页面,但不是马上跳转。 Intent 是及时启动,intent 随所在的activity 消失而消失。 PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast,g

阳光岛主 1万+
上一篇: Apache MINA 基本介绍
下一篇: Android Menu add方法
mincheat
博客等级 码龄17年 46粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值