我迫切需要一个解决这个问题的方法,由于某种原因,我已经测试了我的蓝牙应用程序,当我关闭应用程序(onDestroy())并重新进入蓝牙连接失败时。目前解决此问题的唯一方法是关闭设备的蓝牙功能。
我使用的代码或多或少是用于android的bluetoothchat示例。我创建了2个先前连接设备的bt连接。
然后我使用输入流和输出流来回传这些套接字。
当我的应用程序被销毁时 - 我关闭输入和输出以及蓝牙套接字,我甚至会杀死进程(在这里找到一些代码)但是当我回到应用程序时连接失败。
到目前为止,有人可以提供任何帮助吗?我的代码目前相当多,所以不知道要粘贴什么,但是bt连接基本上是使用示例中的类,然后将这些创建的套接字传递给我的其他类。
提前致谢
答案 0 :(得分:3)
使用onDestroy的最佳方式是以下方式,希望你做的是类似的事情。
@Override
protected void onDestroy() {
if (localBT != null) {
localBT.close();
}
super.onDestroy();
}
答案 1 :(得分:0)
正如Gaks所说,你的问题可能涉及onResume()/ onPause()。你是否绝对确定你的onDestroy清理被调用(例如,你是否正在登录和/或观看logcat)?
如果您的应用不是持久性的,那么在不再使用该应用时(onPause)进行清理可能会更好。
另外,如果你有两个连接,你需要做些什么特别的事情来关闭它们吗?只是猜测那个。