首页 > 解决方案 > 如何在 Android 中的 Activity 之间进行通信

问题描述

我是 Android 新手(但不是 java 新手),我对服务、ViewModel、广播事物和其他用于在活动之间进行通信的替代方案感到困惑。我的沟通需求非常基本。

考虑MidiscopeMainActivity。我想做类似的事情,但使用 Spinner 在不同的 Activity 上选择源。基本上一个用于 Spinner 的 Activity(称为“SettingsActivity”,但由于该边距太长的原因显然不能成为真正的设置)和另一个用于带有 TextView 的 UI 的 Activity,称为 TextViewActivity。如果我共享静态变量以从设置访问 TextViewActivity,我可以让它工作,这样我就可以从设置创建 LoggingReceiver,但将它绑定到 TextViewActivity 而不是设置(this)。显然这是不对的(TM),所以我尝试了所有我可以用谷歌搜索的选项都无济于事。实现这一目标的最简单方法是什么?

标签: androidandroid-serviceui-thread

解决方案


如果您想将一些基本数据从一个活动传递到另一个活动,您应该使用Intent

如何使用它:

Activity1(向Activity2发送数据):

Intent intent = new Intent(context, TextViewActivity.class);
intent.putExtra("EXTRA_SESSION_ID", sessionId);
startActivity(intent);

Activity2(从 Activity1 接收数据):

String sessionId = getIntent().getStringExtra("EXTRA_SESSION_ID");

推荐阅读