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

一、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。

扫描二维码关注公众号,回复: 9210893 查看本文章

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

  Intent与PendingIntent的区别:

  • Intent是即时启动,随所在Activity消失而消失,而PendingIntent用于处理非即时Intent。
  • Intent在程序结束后终止,而PendingIntent自带Context。
  • Intent在原Task中运行,而PendingIntent在新的Task中运行。
  • Intent需要在某个Context内运行,而PendingIntent自带Context。
  • Intent一般用于Activity、Service、BroadcastReceiver之间传递数据,而PendingIntent一般用于消息通知上,可以理解为延迟执行的Intent。
      
      
      
      
      
发布了123 篇原创文章 · 获赞 119 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/cbwem/article/details/90143804