Android:具有多个UI活动的蓝牙SPP应用程序的一般方向(多线程/处理程序)

时间:2010-09-15 06:47:42

标签: android multithreading bluetooth handler rfcomm

我对Android比较陌生,但对Java有一定的经验。这可能更像是与蓝牙相关的多线程/处理程序问题。

我正在编写一个具有按钮的多个布局的应用程序。我为按钮设置了onClickListners。某些按钮将更改活动并使用新按钮显示新布局,而其他按钮将通过蓝牙发送传出SPP字符串。字符串将在XML文件中定义,不会更改(串行命令)。我可以硬编码蓝牙服务器的MAC地址,只需要发送数据,而不是接收。

我正在寻找关于设置蓝牙连接和传出传输方向的一般指导。我已经广泛地查看了BluetoothChat示例,但在多个活动的情况下没有任何好的资源。

- 我是否使用单独的活动来管理所有蓝牙传输和连接,并为我发送蓝牙消息的每种情况创建处理程序? - 我应该在每个活动中添加蓝牙连接+传输线程(似乎我会遇到在更改活动时丢失连接的问题)? - 我可以使用非特定于类的处理程序,其中BluetoothService Activity可以发送活动/当前活动提示的任何内容吗? - 我只是硬编码要在BluetoothService Activity中发送的所有字符串,UI活动可以提示BluetoothService Activity根据按钮点击发送请求的字符串吗?

任何信息都将不胜感激。只是一个大方向,小样本或课堂建议会让我朝着正确的方向前进。

谢谢,

乔纳森

1 个答案:

答案 0 :(得分:0)

我会通过一个单独的线程来管理蓝牙通信。该线程可以启动并且可以由应用程序本身访问,因此所有活动都可以访问它。您可以使用阻塞队列(在线程内)将来自所有活动的消息排入队列,并通过消息(处理程序捕获的意图或消息)报告响应。