自己关于Intent的一点大致的理解

本文介绍了Android开发中Intent作为组件间通信手段的应用,包括显式与隐式Intent的区别及如何通过startActivityForResult方法实现Activity之间的数据传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

△ 关于

    Intent在是链接各种组件的一种交流方式,据我现在的理解应该是一种消息的传递机制,常常会有显式的intent,也会有隐式的intent,显式的直接规定了所要链接的一个组件,而隐式的还有需要规定Type Action action应该就是想要表达一种意图,也就是一种行为方式,当你点击一个按钮监听事件的时候,会触发这个intent,然后能响应这个intent的程序就会出现在界面中,其中有的action Android中内置的action(目的)。

    startActityForResult方法在调用这个可以向上一个actity传递数据,此方法会有两个参数,一个是一个intent对象,另一个是一个请求码,用于之后回调onResult方法来判断数据的来源,而在上一个actity中需要重写这个onResult方法,上一个活动销毁后,会回调这个方法,来获得intent的数据,在onResult方法中会有三个参数,其中有protected void onActivityResult(int requestCode, int resultCode, Intent data)

其中的requestCode是请求码,由于会有一个活动会多次调用startActityForResult而之后都会调用onResult方法,所以requestCode用于判断数据来源,resultCode是用于判断处理的结果,intent data是传回来的数据;

部分代码:

public void onClick(View arg0) {
Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT);//不同组件的一种通讯方式,可以是在一个APP内,
//也可以是其他的App,intent具有激活组件和携带数据的作用,
openAlbumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(openAlbumIntent, 1);//由于需要在新打开的活动中获取到数据
//所以一般是使用上面的这个方法,当新打开的活动时。,会用intent返回结果
}
});

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

.........

switch (requestCode) {

case :..

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值