初来学习Intent,基本用法

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请求时,就会出现:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • (1)闹钟 创建闹钟(ACTION_SET_ALARM)示例Intent: 注:为了调用ACTION_SET_AL...
    sunnygarden阅读 1,599评论 0 10
  • 初来学习Activity,基本用法 活动是Android的四大组件之一,它是一种可以包含用户界面的组件,主要用于和...
    大话程序阅读 539评论 0 0
  • 转载注明出处:http://www.jianshu.com/p/a7535c3f33df 1. 前言 在Andro...
    王三的猫阿德阅读 2,875评论 0 10
  • 繁花红颜旧影几人同 指茧流年似水轻扉页 繁华落尽谁共相思笺 几笔情脉脉 聚散千帆过尽伊人岸 百转千回不过一个你 碾...
    空城锦阅读 220评论 0 0
  • 关于工作 今天亚华开始休产假了,科室里又只有三个人了,今天是第一天,不是很忙,但不可能天天那么空,所以得坚持两个...
    晴冰阅读 183评论 0 0