美文网首页Android知识
初来学习Intent,基本用法

初来学习Intent,基本用法

作者: 大话程序 | 来源:发表于2016-05-05 10:01 被阅读84次

Intent用法

Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据

显示Intent

Intent有多个构造函数的重载,其中一个是Intent(Context packageContext, Class<?> cls),参数packageContext代表启动活动的上下文,参数cls想要启动的目标活动。方法startActivity(Intent intent),启动这个意图。

隐式Intent

隐式Intent并不明确指明我们要启动哪一个活动,而是指定一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮助我们找出合适的活动去启动。

  • 我们在activity标签下配置intent-filter标签,可以指定当前活动能够响应的actioncategory

      <activity
          android:name="xxxxxxx">
          <intent-filter>
              <action android:name="xxxxxxxxxxx"/>
              <category android:name="xxxxxxxxxxxxxx"/>
              <category android:name="xxxxxxxxxxxxxxxxx"/>
          </intent-filter>
          >
      </activity>
    

只有actioncategory中的内容同时能够匹配上Intent中指定的action和category时,这个活动才能够响应该Intent,每个Intent中只能指定一个action,但却能指定多个category,调用Intent中的addCategory()方法来添加一个category

隐式Intent的高级用法

  • 使用隐式Intent,我们不仅可以启动自己程序内的活动,还可以启动其他程序中的活动,这使得Android多个应用程序之间的功能共享成为了可能

调用系统的浏览器

  • 系统内置的动作actionIntent.ACTION_VIEW,其常量值为android.intent.action.VIEW

      //创建一个意图对象,指定其action为系统内置浏览器的action
      Intent intent = new Intent(Intent.ACTION_VIEW);
      //指定当前action正在操作的数据
      intent.setData(Uri.parse("http://www.baidu.com"));
      //启动活动
      startActivity(intent);
    
  • setData()方法: 此方法主要接收一个Uri对象,主要用于指定当前Intent正在操作的数据,而这些数据通常都是以字符串的形势传入到Uri.parse()方法中解析出来的

调用系统的拨号器

  • 系统内置动作actionIntent.ACTION_DIAL

      //调用系统的内置动作Intent.ACTION_DIAL
      Intent intent = new Intent(Intent.ACTION_DIAL);
      //拨打电话使用的tel协议
      intent.setData(Uri.parse("tel:10086"));
    

点击按钮,出现如下界面:


data标签,响应什么类型的数据

setData()方法相对应,在<intent-filter>标签中再配置一个<data>标签,用于更精确的指定当前活动能够指定什么类型的数据。

  • android:scheme 用于指定数据的协议部分,例:http
  • android:host 用于指定数据的主机名部分,例:www.baidu.com
  • android:port 用于指定数据的端口部分,一般紧随在主机名之后
  • android:path 用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容

只有<data>标签中指定的内容和Intent中携带的Data完全一致时,当前活动才能够响应该Intent

设置data标签,可以响应http请求的活动

这个项目的名字叫做ActivityTest

    <activity
        android:name=".ThirdActivity">
        <intent-filter>
            <!--action指定为系统内置的动作-->
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <!--设置了data类型为http请求类型-->    
            <data android:scheme="http"/>
        </intent-filter>
    </activity>

当发送一个http请求时,就会出现:


相关文章

  • 初来学习Intent,基本用法

    Intent用法 Intent是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执...

  • 初来学习Activity,基本用法

    初来学习Activity,基本用法 活动是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和...

  • Intent的基本用法

    Intent的显式意图 指明了Intent要跳转的目标活动的类名. startActivity(new Inten...

  • Android基础05

    intent的显示用法 intent的隐式用法 向上一个活动返回数据intent的显示用法: 新建一个intent...

  • 第三课--实现项目内的页面跳转

    这节课主要学习的是隐式Intent的用法以及其拓展的一些用法。 Intent是Android程序中各组件之间进行交...

  • Sumif函数和Sumifs函数的用法

    今天我们来学习Sumif函数和Sumifs函数的用法,并进行比较。 一、基本用法 1.SUMIF的基本用法 (1)...

  • 创建 Intent 时的误区

    关于Intent的基本用法网上很多,就不再赘述,下面讲一个容易理解错的点 我们在构建 Intent对象是最常用的方...

  • Intent用法

    数据回传 页面回传传递数据的总体步骤如下: 一、传递List传递List 的方法 接收List 的方法 传递Lis...

  • 第三课课后感想

    这节课主要学习的是隐式Intent的用法。 Intent是Android程序中各组件之间进行交互的一种重要方式,不...

  • Android Intent的隐示启动(启动其他APP界面并传递

    引用 1、Android中Intent的隐式启动和显示启动Activity2、使用Intent来进行App间的基本...

网友评论

    本文标题:初来学习Intent,基本用法

    本文链接:https://www.haomeiwen.com/subject/sdrdrttx.html