使用 Intent 在 Android 组件之间传输数据
——从入门到最佳实践(附完整 Java Demo)
作者:Kimi
日期:2025-09-04
- 为什么用 Intent?
在 Android 中,Activity、Service、BroadcastReceiver 这三大组件通常运行在不同的进程(或线程)里。
系统提供了一种统一的“邮差”机制——Intent,让我们可以在组件之间传递消息与数据,而无需关心底层 Binder、AIDL 等复杂细节。
一句话:Intent 就是 Android 世界的“快递单”。
- Intent 能传什么?
数据类型 API 备注
基本类型/基本数组 putExtra(String, int/boolean/...) 内部走 Bundle
String/CharSequence putExtra(String, String)
实现了 Serializable putExtra(String, Serializable) 简单但性能一般
实现了 Parcelable putExtra(String, Parcelable) 推荐,高效
Bundle putExtras(Bundle) 可一次性打包
Uri setData(Uri) 适合文件/网页
- 代码
Mainactivity中
‘’‘java
button5.setOnClickListener(new View.OnClickListener() {
//使用intent传输数据
@Override
public void onClick(View v) {
String data = "Hallo,action2";
Toast.makeText(MainActivity.this,"哎哟,你干嘛",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this,MainActivity2.class);
intent.putExtra("extra_data",data);
startActivity(intent);
}
});
'''
MainActivity2中
”’java
Intent intent = getIntent();
String data = intent.getStringExtra(“extra_data”); //字符串,整型,布尔值都可以传,但要注意使用正确的函数
Log.d(“MainActivity2”,data);
”’