欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 安卓基础(Intent)

安卓基础(Intent)

2025/5/4 3:16:54 来源:https://blog.csdn.net/hongsegeming/article/details/145532398  浏览:    关键词:安卓基础(Intent)

📌 Intent 的作用

💡 Intent 是 Android 组件之间(Activity、Service、BroadcastReceiver)相互通信的桥梁。

1️⃣ Activity 之间传递数据

💡 在同一个应用中,Intent 可以用来从一个 Activity 跳转到另一个 Activity,并传递数据。

📌 发送数据(MainActivity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("username", "张三"); // 传递字符串
intent.putExtra("age", 25); // 传递整数
startActivity(intent);

📌 接收数据(SecondActivity

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_second);Intent intent = getIntent();String username = intent.getStringExtra("username");int age = intent.getIntExtra("age", 0);Log.d("SecondActivity", "收到数据: 用户名=" + username + ",年龄=" + age);
}

适用于:

  • 同一个 App 内部的 Activity 之间的数据传递
  • MainActivity 跳转到 SecondActivity 并传递信息

2️⃣ startActivityForResult() 获取返回数据

💡 如果 Activity A 需要从 Activity B 获取数据,可以使用 startActivityForResult()

📌 发送请求(MainActivity

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, 1); // 1 是请求码

📌 返回数据(SecondActivity

Intent resultIntent = new Intent();
resultIntent.putExtra("result", "Hello from SecondActivity");
setResult(RESULT_OK, resultIntent);
finish();

📌 接收返回数据(MainActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 1 && resultCode == RESULT_OK) {String result = data.getStringExtra("result");Log.d("MainActivity", "收到返回数据: " + result);}
}

适用于:

  • Activity A 需要从 Activity B 获取数据时
  • 例如:让用户选择一个图片或文件,然后返回文件路径

3️⃣ 在不同 App 之间传递数据

💡 如果要把数据从 App A 传到 App B,需要 Intent + setComponent()

📌 App A 发送数据

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.targetapp", "com.example.targetapp.TargetActivity"));
intent.putExtra("message", "Hello from App A");
startActivity(intent);

📌 App B 接收数据

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_target);Intent intent = getIntent();String message = intent.getStringExtra("message");Log.d("TargetActivity", "收到数据: " + message);
}

适用于:

  • 两个不同的 App 之间传递数据
  • App A 直接启动 App B 的某个 Activity 并传递数据

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词