Intent组件之间实现通信

本文详细介绍了Android开发中Intent的使用方法,包括如何启动Activity、服务及广播等组件,并讲解了显式与隐式Intent的区别,以及如何通过Intent在不同组件间传递数据。

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

Intent(意图)常见的就是用来绑定应用程序组件,并在应用程序间进行 通信.

一般用于启动Activity、启动服务、发送广播 (承担三大组件之间的通信)

启动组件常用方法

对Activity ——–》startActivity(Intent intent) / startActivityForResult(Intent intent)

对service ———-》ComponentName startService(Intent intent)

和boolean bindService(Intent service,ServiceConnection conn,int flags)

对BroadcastReceiver ———》sendBroadcast(Intent intent) /

和 sendBroad(Intent intent,String receiverPermission)

和sendorderedBroadcast(Intent intent,String receiverPermission)

Intent显式意图和隐式意图
显式:Intent intent = new Intent(this,Main2Activity.class);
startActivity(intent);

隐式:在androidMainifest.xml 中设定


        例:

这里写图片描述

隐式是这么开启的
Intent intent = new Intent();
intent.setAction(“cn.itcast.xxx”);
将你所设的action和catagory copy copy到这
startActivity(intent);


可设置的有动作(action)类别(catagory)、数据(Uri和数据类型)

然后系统会根据你所定义的查找合适你的组件


通过Intent传递数据

例:Activity1
Intent intent = new Intent();
intent.putExtra(“key”,data);假设data为String型
startActivity(intent);

接收数据
Activity2
Intent Intent = new Intent();
String data = intent.getStringExtra(“key”);

那通过Intent回传数据给原Activity

Activity1:
Intent intent = new intent(this,Activity2.class);
startActivityForResult(intent,请求码);

重写onActivityResult方法
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(resultCode,resultCode,data)
if(resultCode == 请求码)
{
String data = data.getStringExtra(“key”);
}
}

Activity2:
Intent Intent = new intent();
intent.putExtra(“key”,data);
setResult(请求码,intent);
finish();销毁当前活动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值