在Android上的活动之间保持蓝牙连接

时间:2010-06-28 12:59:34

标签: android bluetooth android-activity

  

可能重复:
  Android: How to pass a Bluetooth connection to another Activity?

我有一个应用程序,我将通过蓝牙连接传输数据。

在我的概念验证应用程序中,我能够将蓝牙通信放在不同的线程中,并将所有其他工作保留在同一活动上(使用ViewFlipper)。

然而,对于我的下一次迭代,我将需要使用几个不同的“屏幕”(活动)。流程将是这样的:

我的初始活动将连接到我将从中获取数据的蓝牙设备。

“主要”活动之外的一项活动是从BT设备获取数据列表并将其显示在列表视图中。然后,当我点击一个项目时,我需要获得更详细的数据视图(在其他活动中显示,但也必须访问BT连接)。

“主要”活动将会有其他特定活动。

所以我的问题是如何管理它的最佳方式是,我在哪里启动蓝牙连接ONCE,而不必为每项活动重新启动它?

2 个答案:

答案 0 :(得分:1)

正如Alex所说,将连接的控制器存储为自定义application类的子类的成员。

您必须创建自己的应用程序类来扩展android应用程序类并在清单中注册此类。现在,您可以使用getApplication获取应用程序并将其转换为您的子类。现在,您可以访问Application类的成员变量。

android documentations中描述了其他一些可能性。

我不会在您的应用程序类中使用静态字段。无论如何只有一个应用程序类,您可以确保在应用程序运行时不会销毁整个应用程序对象。 Android书籍的一些作者声称这对于静态变量并不确定。

答案 1 :(得分:-1)

将其存储为应用程序子类中的静态字段(如果需要,还可以使用应用程序上下文进行实例化)。