gpt4 book ai didi

android - Activity 到 Activity 的通信没有完成

转载 作者:搜寻专家 更新时间:2023-11-01 08:53:29 25 4
gpt4 key购买 nike

我有两个 Activity :一个是主要的 (A),第二个是从 A (B) 开始的。我用 startActivityForResult(intent, id) 开始 B。

我知道我可以通过 setResult() 方法将结果发送回 A,但据我所知,结果直到 finish() 被调用。我需要将数据从 B 发送到 A 而不 关闭 B(甚至在关闭前几次)。有办法实现吗?

据我所知,实现这一目标的选项并不多。我可以使用 SharedPreferences,但我还需要某种事件来通知 A 它必须读取一个值!

任何想法表示赞赏。

------ 最终解决方案 ------

在@Nathaniel Waggoner 的建议下,我终于明白了。这是我所做的:

在我的 Activity 中,我声明了 BroadcastReceiver 的扩展:

class ActivityBroadcast extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final String txt2send = intent.getStringExtra("txt2send");
if ((txt2send != null) && (!txt2send.isEmpty())) {
// Do the needed stuff
...
}
}
}

现在我在我的类中声明了 ActivityBroadcast 实例并初始化了它:

private static ActivityBroadcast broadcast_signal;
broadcast_signal = new ActivityBroadcast();

我控制触发 onReceive 方法的只是我的 Intent 的方式是将 IntentFilter 设置为 SENDTXT2SOCK 自定义操作,这样:

// CustomActions.SENDJOIN2CHAN is just a constant from a customized public class
// where I define my own constants to not interfere with the "official" ones
registerReceiver(broadcast_signal, new IntentFilter(CustomActions.SENDTXT2SOCK));

这样我是说在 broadcast_signal 上将只注册 CustomActions.SENDTXT2SOCK 操作,因此忽略任何其他操作。现在我们只需将所需 Activity 的信号发送到该接收器即可:

final Intent intentResult = new Intent(CustomActions.SENDTXT2SOCK);
intentResult.putExtra("txt2send", "blabla");
sendBroadcast(intentResult);

仅此而已,就像一个魅力!

最佳答案

关于android - Activity 到 Activity 的通信没有完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com