在蓝牙聊天示例中,我想添加另一个 Activity 。当建立连接并加载新 Activity 时,我如何保持连接处于 Activity 状态?
加载新 Activity 后,将调用 onStop 方法,并且我可以使用之前建立的连接发送消息。我在新 Activity 中尝试了以下代码:
BluetoothChat bt = new BluetoothChat();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.special_keys);
bt.sendMessage("hello");
}
我设法发送“你好”,但此后它强制关闭。必须有一种有效的方法来处理这种情况。请帮忙。
提前致谢。
最佳答案
我最近创建了一个通过蓝牙与硬件设备通信的 Android 应用程序。在我的应用程序中,我有许多通过连接进行通信的 Activity 类,并且应用程序还在后台通过连接执行连续数据记录。因此,希望我能在这里提供帮助。 (这是我第一次尝试在 StackOverflow 上发布答案,所以请放轻松。)
在我的应用程序中,我首先将所有蓝牙代码放入一个单独的专用类文件中(我将其称为BluetoothIF.java)。此类中的构造函数执行基本的适配器初始化,并为建立连接等任务提供了进一步的方法。它包含用于建立连接然后通过已建立的连接进行传输/接收的 Runnable 类。 (本质上它是基于 BluetoothChat 示例。)
我不需要通过蓝牙连接执行大量通信,而且我还需要在后台有一个服务来持续监视和记录来自连接的数据,如前所述。因此,我在服务中实例化了我的 BluetoothIF。任何需要通过现有蓝牙连接交换数据的 Activity 类在我的应用程序中都是通过与服务交换消息来实现的。
或者,如果您不需要使用服务,也许您应该使用单例模型或扩展应用程序类来跨 Activity 共享蓝牙对象实例。
关于android - 保持连接有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699155/