2024年3月27日发(作者:)

activity之间的通信方式

随着Android应用程序的日益复杂,不同的Activity之间的通信变得越来越重要。

Android系统为开发人员提供了多种方式来实现Activity之间的通信。本文将着重介绍这

些通信方式。

1.使用Intent

Intent 通常被用来在不同的Activity之间传递数据。在一个Activity中创建一个

Intent,然后通过putExtra()方法将数据添加到该Intent中。之后使用startActivity()

方法来启动目标Activity并将该Intent传递给它。然后在目标Activity中可以使用

getIntent()方法来获取该Intent,以获取从源Activity发送的数据。

例如,在从Activity A到Activity B之间传递数据:

在Activity A中:

Intent intent = new Intent(, );

ra("KEY", value);

startActivity(intent);

在Activity B中:

Intent intent = getIntent();

String value = ingExtra("KEY");

2.使用回调接口

回调接口是另一种通信方式,用于当一个Activity需要从另一个Activity中获取结

果时。在这种情况下,Activity B会被设置为结果Activity,当结果可以被获取时,

Activity B会调用一个定义好的回调接口方法来通知Activity A。

例如,从Activity A中启动Activity B,获取返回结果:

在ActivityA中:

Intent intent = new Intent(, );

startActivityForResult(intent, requestCode);

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == requestCode) {

if (resultCode == RESULT_OK) {

//处理获取到的返回结果

}

}

}

在Activity B中,在完成并退出Activity B之前,需要将结果设置在Intent中并使

用setResult()方法返回。

Intent intent = new Intent();

ra("KEY", value);

setResult(RESULT_OK, intent);

finish();

3.使用Broadcast

Broadcast机制也是一种Activity之间通信的方式。一个Activity可以广播一个

Intent,其他Activity可以选择监听该Intent并做出响应。

例如,在Activity A中,发送广播:

Intent intent = new Intent("ast_Action");

ra("KEY", value);

sendBroadcast(intent);

在Activity B中,可以通过广播接收者监听该广播并获取传递的数据:

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

String value = ingExtra("KEY");

//处理数据

}

};

registerReceiver(broadcastReceiver,

IntentFilter("ast_Action"));

new

总之,Android系统提供了多种方式来实现Activity之间的通信。对于选择何种方

法,需要根据具体情况来选择,以实现最佳的效果。无论使用哪种方式,每次通信都需要

注意数据类型和安全性。