Android Intent 是一种在 Android 应用组件之间传递信息和启动组件(如 Activity、Service、BroadcastReceiver 等)的方式。以下是 Intent 的基本用法:
Intent intent = new Intent(context, TargetActivity.class);
这里,context
是当前 Activity 的上下文,TargetActivity.class
是要启动的目标 Activity 类。
startActivity(intent);
这行代码将使用 Intent 对象启动目标 Activity。
可以使用 putExtra()
方法向 Intent 传递数据。例如,传递一个字符串和一个整数:
intent.putExtra("key_string", "Hello, World!");
intent.putExtra("key_int", 42);
在目标 Activity 中,可以使用 getIntent()
方法获取传递的 Intent 对象,然后使用 getStringExtra()
和 getIntExtra()
方法获取传递的数据。例如:
Intent intent = getIntent();
String stringValue = intent.getStringExtra("key_string");
int intValue = intent.getIntExtra("key_int", defaultValue);
这里,defaultValue
是当传递的数据不存在时返回的默认值。
要启动一个 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:
<application>
...
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_BROADCAST" />
</intent-filter>
</receiver>
</application>
这些是 Android Intent 的基本用法。Intent 还支持其他操作,如附加数据、启动 Activity 的动画等。具体用法可以参考 Android 开发者文档。