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