【精华】Android面试精华总结——Intent组件

本文深入解析Android中Intent与PendingIntent的概念与应用。详细介绍了Intent作为四大组件间通信桥梁的作用,包括显式与隐式Intent,以及Intent的七大属性。同时阐述了PendingIntent作为延时意图的特点,对比了与Intent的主要区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Intent简介

  Intent是四大组件间的枢纽,Android通信的桥梁。Activity、Service、BroadcastReceiver三种组件之间的通信都以Intent作为载体,只是不同组件使用Intent的机制略有区别而已。Intent封装了程序想要启动或触发目标组件的信息,其还可用于被启动组件交换信息。
  
  

二、Intent类型

1.显式Intent

  通过组件名明确指定需要启动或这触发的组件的类名。
  

2.隐式Intent

  不指定组件名,而指定Intent的Action、Data、Category,通过指定应满足怎样的条件来启动或触发的组件。被调用组件可通过Intent-filter来声明自己所满足的条件。
在这里插入图片描述
  

三、Intent属性

  Intent对象大致包含Component、Action、Category、Data、Type、Extra、Flag这7种属性,其中Component用于明确指定要启动的目标组件,而Extra则用于携带需要交换的数据。

1.ComponentName(组件名称)

在这里插入图片描述

2.Action(动作)

在这里插入图片描述
  常用Action:
在这里插入图片描述

3.Category(类别)

在这里插入图片描述
在这里插入图片描述

4.Data(数据),Type(MIME类型)

在这里插入图片描述
  一旦为Intent同时指定了Action、Data属性,Android就可根据指定的数据类型来启动特定应用程序,并对孩子定数据执行相应的操作。

5.Extras(额外)

在这里插入图片描述

6.Flags(标记)

在这里插入图片描述
  用于为Intent添加一些额外的控制旗标,Intent可调用addFlags()方法来添加控制旗标。

四、PendingIntent

  PendingIntent是延时意图,可以看做是对Intent的包装,主要用于处理非即时Intent,供当前APP与外部APP调用。PendingIntent主要持有的信息是它所包装的Intent和当前的App Context,即使当前APP已不存在,也可以通过存在于PendingIntent中的Context来执行Intent。

例如用户点击通知栏中的消息时,跳转到APP的某个页面。

  Intent与PendingIntent的区别:

  • Intent是即时启动,随所在Activity消失而消失,而PendingIntent用于处理非即时Intent。
  • Intent在程序结束后终止,而PendingIntent自带Context。
  • Intent在原Task中运行,而PendingIntent在新的Task中运行。
  • Intent需要在某个Context内运行,而PendingIntent自带Context。
  • Intent一般用于Activity、Service、BroadcastReceiver之间传递数据,而PendingIntent一般用于消息通知上,可以理解为延迟执行的Intent。
      
      
      
      
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值