Android Intent 是一种在 Android 应用组件之间传递信息和启动组件(如 Activity、Service、BroadcastReceiver 等)的方式。以下是 Intent 的基本用法:
- 创建 Intent 对象:
Intent intent = new Intent(context, TargetActivity.class);
这里,context
是当前 Activity 的上下文,TargetActivity.class
是要启动的目标 Activity 类。
- 使用 Intent 对象启动 Activity:
startActivity(intent);
这行代码将使用 Intent 对象启动目标 Activity。
- 传递数据给 Intent:
可以使用 putExtra()
方法向 Intent 传递数据。例如,传递一个字符串和一个整数:
intent.putExtra("key_string", "Hello, World!"); intent.putExtra("key_int", 42);
- 在目标 Activity 中获取传递的数据:
在目标 Activity 中,可以使用 getIntent()
方法获取传递的 Intent 对象,然后使用 getStringExtra()
和 getIntExtra()
方法获取传递的数据。例如:
Intent intent = getIntent(); String stringValue = https://www.yisu.com/ask/intent.getStringExtra("key_string"); int intValue = https://www.yisu.com/ask/intent.getIntExtra("key_int", defaultValue);
这里,defaultValue
是当传递的数据不存在时返回的默认值。
- 启动 Service:
要启动一个 Service,可以使用 startService()
方法。例如:
Intent serviceIntent = new Intent(context, MyService.class); startService(serviceIntent);
- 发送广播:
要发送一个广播,可以使用 sendBroadcast()
方法。例如:
Intent broadcastIntent = new Intent("com.example.MY_BROADCAST"); sendBroadcast(broadcastIntent);
- 接收广播:
要接收一个广播,需要创建一个 BroadcastReceiver 子类并重写 onReceive()
方法。例如:
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("com.example.MY_BROADCAST".equals(action)) { // 处理接收到的广播 } } }
然后,需要在 AndroidManifest.xml 文件中注册 BroadcastReceiver:
...
这些是 Android Intent 的基本用法。Intent 还支持其他操作,如附加数据、启动 Activity 的动画等。具体用法可以参考 Android 开发者文档。