Intent的作用和表现形式简单介绍

  • 1.描写叙述:Intent负责相应用中一次操作的动作,动作涉及的数据,附加数据进行描写叙述。系统或者应用依据此Intent的描写叙述,负责找到相应的组件,将Intent传递给调用的组件。而且完毕组件的调用。

    • Intent在这里起着一个媒体中介的作用,专门提供组件相互调用的相关信息。
  • 2.Intent的表现形式:
    • 激活一个Activity
    • 开启服务
    • 发送广播
    • 訪问ContentProvider
  • 3.Intent的属性设置:
    • 设置动作:setAction 表示要干什么
    • setData:设置数据,表示要传递给目标组件的数据。

      它是一个URI格式的数据。

    • setType:表示要訪问的数据类型,是一个MIME类型的数据(Image/* Voide/* text/plain vnd.android.dir/image)
    • addCategory:设置要訪问的组件的类别,能够同一时候加入多个类别。
  • 4.显示意图和隐式意图
    • 显示调用:直接指定要调用的组件的类名 一般在调用本应用程序时使用
    • 隐式调用:通过对要调用的组件的动作,类别,数据的描写叙述,来訪问目标组件。 一般在调用第三方软件时使用。

  • 5.附加数据 附加数据实现的两种方式
    • 1.intent.putExtra(key,value)
    • 2.通过Bundle附加数据 Bundle相似于HashMap intent.putExtras(Bundle)

当一个Activity须要被其它软件调用时,该Activity必须是指为隐式意图。

一个Activity能够配置多个意图过滤器。一个意图过滤器也能够配置多个,能够配置多个,在使用时,仅仅要有一个意图过滤器,相应的一个,以及满足要求。就能够打开该Activity。

訪问网络时,一定要加入权限。

调用一个应用去浏览网页时,本应用不一定须要加入訪问网络的权限,可是被调用应用程序一定要有网络訪问的权限。

意图过滤器中的动作能够自定义。不须要全然使用系统定义好的动作。

意图在显示调用时,会默认加入一个Intent.CATEGORY_DEFAULT 显示意图的Activity一般把设置为CATEGORY_DEFAULT

intent能够传递的数据类型:

  • 基本数据类型 以及String String/CharSequence
  • 传递一个Bundle
  • 传递Serializable对象
  • Parcelable对象
  • Intent

归根结底都是通过Bundle来实现数据封装。而Bundle则是通过Map的数据结构来存储数据。

Intent在传递数据时,数据必须在Intent进行跳转之前设置,否则数据无法携带过去。

05-11 16:27