从各种活动中访问蓝牙“ConnectedThread”

时间:2016-09-13 17:26:09

标签: android multithreading bluetooth handler

我创建的BluetoothManager与this示例中的非常相似。此对象在连接活动中实例化,通过单击“连接”按钮从主活动到达,该按钮提供可选设备的ListView。到目前为止工作得很好。

我现在已连接并且正在运行BluetoothManager.ConnectedThread并设置了流。我现在希望能够在运行时从其他各种活动发送蓝牙数据。例如,我想在图表活动运行时绘制实时值。

据我所知,从ConnectedThread推出数据将通过Handler进行,这对我来说是个新主题。我不清楚其他活动如何访问ConnectedThread的write()函数。

1 个答案:

答案 0 :(得分:1)

首先,尽管单例可能是一个解决方案,但是android Service可以用于此目的,因为这些元素可以在UI外出时继续运行。所以我的建议是创建一个粘性服务然后你有两个选择:

  • 使用活动与Service之间的处理程序处理数据。也许如果你对Handler api不太熟悉,这将需要一些时间给你。在官方文档的this示例中,您还可以检查如何使用处理程序。
  • 创建绑定服务,您可以从活动绑定到该绑定服务,并在需要时发送一些数据。 Here您拥有有关绑定服务的官方信息。

您可以查看this教程以获取有关处理程序的更多信息。