作用
给各个服务传递消息
分类2类
Intent(Context packageContext, Class)
这个构造函数接收两个参数,第一个参数Context 要求提供一个启动活动的上下文,第二个参数Class 则是指定想要启动的目标活动,通过这个构造函数就可以构建出Intent 的“意图”。
类似传递工具,将当前启动活动,目标下一个启动活动,作为构造函数的参数,生成一个intent对象。
通过startActivity方法启动这个链接器,启动目标活动。
Activity类中提供了一个startActivity() 方法,这个方法是专门用于启动活动的,它接收一个Intent 参数
显式传递
1 | Button button2 = findViewById(R.id.button_2); |
隐式传递
1 | Button button2 = findViewById(R.id.button_2); |
调用组件传递
通过view和dial等不同组件,传递不同功能的数据
1 | Button button2 = findViewById(R.id.button_2); |
指定了Intent的action 是Intent.ACTION_VIEW ,这是一个Android系统内置的动作,其常量值为android.intent.action.VIEW 。然后通过Uri.parse() 方法,将一个网址字符串解析成一个Uri 对象,再调用Intent的setData() 方法将这个Uri 对象传递进去。
传递数值
Activity之间正向传输数据
递送端
1 | //设定传送数值 |
接受端
1 | //新建传送,根据传送端设定的key获取值,通过提示框显示 |
Activity之间反向传输数据
从接受端传输给发送端并销毁自身
- 发送端
1 | //startActivityForResult() 方法接收两个参数,第一个参数还是Intent,第二个参数是请求码,用于在之后的回调中判断数据的来源 |
- 接受端
1 | // 建立专递,设定活动传递,并设定改活动要传递的值,设定活动要传递的位置是前一个Activity,并且这个Activity专递过来是状态OK,同时将这个值也设定,并送出。 |
- 发送端
1 | // 重写Activity的获取状态方法,判断requestCode,判断是否为启动时传出的设定值 |