android - 如何将线程中的数据/流实时传递到 Android 中的 Activity ?

标签 android multithreading android-activity background real-time

基本上,我所做的是从两个不同的项目中获取源代码并将其拼凑在一起,以尝试创建一个实时绘制蓝牙数据的新应用程序。中间结果显然比我能理解的要复杂。我提出了问题,获得了反馈,做了很多阅读,但我仍然坚持我所看到的问题:如何将数据从数据采集线程实时获取到绘图 Activity 中?这个问题需要一些解释。

我从 Blueterm 的源代码开始,一个支持SPP/RfComm的蓝牙终端仿真程序。第一步是在我的 Android 手机上构建并运行 Blueterm,让它与外部蓝牙数据采集设备连接和通信。这很顺利 - 设备数据在屏幕上很好地滚动。

接下来我去了 AndroidPlot 并获得了 OrientationSensorExample 的源代码,并将其添加到我的项目中,以便我可以从“选项”菜单开始此 Activity 。这也很顺利。我的应用程序启动方向传感器 Activity ,该 Activity 实时绘制方向传感器数据,同时继续在后台实时从蓝牙设备获取数据。

我现在要做的是修改我的应用程序,以便方向传感器 Activity 实时绘制蓝牙数据(而不是方向传感器数据)。使用 logcat 我知道一个事实,即方向传感器 Activity 正在实时绘制方向传感器数据,并继续在后台实时获取蓝牙数据。

这表明了一种架构:当我的应用程序实时绘制方向传感器数据时,有一个后台线程继续实时获取蓝牙数据。或者另一种看待它的方式:有一个蓝牙 Activity 产生/生成/创建/无论什么后台线程(或只是一个线程),即使在我启动了方向传感器 Activity (所有这些都是通过 logcat 观察到的)之后它仍然继续运行).

所以问题仍然存在:如何将数据从这个后台线程(由蓝牙 Activity 启动)传递到方向传感器 Activity ?

最佳答案

您可以将数据设为静态,也可以使用 Android 框架的 Application 类。 这样您的后台线程就会不断更新静态数据,您将在 Activity 中检索更新后的数据。

关于android - 如何将线程中的数据/流实时传递到 Android 中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6148043/

相关文章:

java - 当用户退出微调器时调用哪个事件

java - 我的手电筒应用程序很慢而且经常崩溃我不知道我做错了什么

android - adobe air android 项目 xml 更改自动

c++ - 在 C++98 中将单个字符串写入 cout "thread safe"

android - 当我旋转屏幕时 onCreateView 在 Fragment 上调用了两次

android - 在 Activity 中检测 PopupWindow 的关闭

android - 适用于 iOS 或 Android 且具有离线访问权限的 Google Sign,服务器始终获取 redirect_uri_mismatch

java - 为什么当我创建一个新 Activity 时, "setContentView"无法识别我的布局?

c++ - 使用 std::atomic 和 std::condition_variable 同步不可靠

c++ - 使用回调正确清理父项和子项 (C++)