Intent介绍

一、初识Intent
  Activity之间交换数据时会用到intent,一个Activity想表达自己的想法就得通过intent,也就是创建intent:
    Intent intent = new Intent(MainActivity.this,XxxActivity.class);
    startActivity(intent); //启动Activity
  作用:Andriod应用中通常会用到三个组件Activity、Service、Broadcast Receiver,他们之间的通信就要用到intent。
  举个例子:网购时,卖家需要通过快递员把商品交给我们,我们购买的商品相当于需要传输的数据,卖家把商品打包为一个包裹,该包裹就好比于用来携带数据的Bundle对象,然后交给快递员进行投递,快递员就好比于用来传输数据的intent对象。
  应用:从一个Activity开启另一个Activity;从一个Activity开启另一个Service;传递广播
二、Intent属性
  (1)ComponentName:设置intent的组件名称,通过这个名称可以启动其他的Activity,使用前先定义该属性的对象,需要传两个参数:该应用的包名、要打开的Activity名称(加类名)
  执行代码:
    ComponentName componentName = new ComponentName("com.xxx","com.xxx.abcAactivity");
    intent.setComponent(componentName);
    startActivity(intent);
  (2)Action:用来指定将要执行的动作,Data用来指定将要执行的数据,二者通常配合使用。比如一个Activity说“我想要喝牛奶”,那么喝就是Action,牛奶就是Data。
  Action通常通过intent定义的Action常量进行设置,可以在sdk的API文档中查询Action常量。
  查询方式:
  1. 打开Android SDK Manager 应用程序。
  1. 下载安装 Documentation for Android SDK
  1. 打开Android\sdk\docs目录
  1. 在docs文件中找到index.html文件双击打开index.html
  1. 打开后选择develop

     

     

  执行代码:
  intent.setAction(intent.Action常量);
  intent.putExtra("xxx","123"); //设置xxx的内容为123
  (3)Category:同样是与Action结合使用的属性,对执行动作的类别进行描述,通过intent提供的category常量进行设置,查询方式同Action常量查询方式。
  执行代码:
    intent.addCategory(intent.Category常量);
  (4)Extras属性:用来向intent组件中添加附加信息。通常情况下,附加信息以键值对的形式进行保存。
    putExtras():把Bundle对象作为附加数据进行添加
    getExtras():获取保存的Bundle信息

posted @ 2021-10-24 16:10  Sunshine_y  阅读(247)  评论(0编辑  收藏  举报