Android(课余甜点)第二天--intent的使用

intent的作用

活动之间的启动器,以及传输活动之间数据传输的载体

步骤

一、启动器

1.

intent是Android程序当中组件之间进行交互的一种重要的方式,intent一般可用于启动活动、启动服务、以及发送广播;目前我只学到了启动活动,其他的目前还没有接触到。

2.

启动活动分为两种:显式intent与隐式intent

显式intent

指的是在声明intent时明确指出将要启动的活动:
Android(课余甜点)第二天--intent的使用
这种指名道姓的方式简单,明快,一般用于操作简单,系统不复杂的时候;但是更多的时候需要灵活性更强的intent来满足用户的需求

隐式intent

这种方式更加含蓄,用简单一句话概括该隐式intent就是:广播(这个广播与接下来的广播不同);想象一个这样的场景:HR拿着一个大喇叭喊:有谁满足blablabla的条件吗?有的话我给你offer.。HR就是代表当前活动,而所谓的条件是指在intent中声明的action是zw,category是 name(zw,与name是我随便取的):
Android(课余甜点)第二天--intent的使用
而满足该条件的活动需要在 注册“身份证”时的备注一下:
Android(课余甜点)第二天--intent的使用
action 与最后一个category中的内容对应我刚刚取的字符串,中间的category是常量必须加上去的(不加上去也可以,就是闪退嘻嘻嘻)
但是action与category两者不一定要全有,比如HR只说了action条件,我们只要满足action跟他一样就行。但是每个intent只能指定一个action可以指定多个category,这样做的目的不言而喻。

更多隐式intent的用法

隐式intent比显式intent好的地方不仅仅在灵活性上,隐式intent可以调用其他程序中的活动实现了Android多个程序之间的功能共享,比如你想链接到地图,你没必要自己做一个地图程序然后链接过去,而直接使用Android内置的动作就可以实现:例如实现拨号:
Android(课余甜点)第二天--intent的使用

二、数据传输

1

数据的传输主要是指活动之间的数据传输(包括:向上传和向下传)

2

向下传

当前活动:
Android(课余甜点)第二天--intent的使用
putExtral函数第一个参数是:键(取值的钥匙)
接收活动:
Android(课余甜点)第二天--intent的使用
接收活动用钥匙(键)把值取出来,并放在data中。

向上传

1.当前活动;

Android(课余甜点)第二天--intent的使用
当前活动(E)声明一个intent 用于启动下一个活动(F)
startActivityForResult第一个参数用于启动下一个活动(F),第二个参数(requestCode)是请求码(绑定在要启动的活动中用于返回判断):假想成一个空口袋等待装入东西 ,但是当前活动(E)不仅仅一个口袋可能有多个,所以需要给每个口袋命名方便接下来接收到自己想要的东西,所以一般用数字表示且唯一。

2. 下一个活动(F)向上面传值:

Android(课余甜点)第二天--intent的使用
跟向下传值一样也需要声明一个intent而且一个字符串,同时把字符串传入intent。
同时也生成一把钥匙(data_Return),setResult()方法特别重要,是专门用于向上一个(F)返回数据的,第一个参数指的是处理结果(一般为RESULT_OK与RESULT_CANCELED表示处理状态),第二个是要传入的值。

3 回到当前活动

Android(课余甜点)第二天--intent的使用
由于当前活动(E)之前用startActivityForResult()方法启动下一个活动(F)的所以在下一个活动(F)销毁之后回调上一个活动(F)的onActivityResult()方法所以此时需要重写该方法来接收数据。由于我们之前绑定了唯一的requestCode所以对返回的requestCode进行判断装入哪个口袋当中,然后判断有无数据(有:RESULT_OK; 无:RESULT_CANCELED)。