android app在退出时没有正确释放蓝牙

时间:2011-08-16 11:00:24

标签: java android bluetooth

我迫切需要一个解决这个问题的方法,由于某种原因,我已经测试了我的蓝牙应用程序,当我关闭应用程序(onDestroy())并重新进入蓝牙连接失败时。目前解决此问题的唯一方法是关闭设备的蓝牙功能。

我使用的代码或多或少是用于android的bluetoothchat示例。我创建了2个先前连接设备的bt连接。

然后我使用输入流和输出流来回传这些套接字。

当我的应用程序被销毁时 - 我关闭输入和输出以及蓝牙套接字,我甚至会杀死进程(在这里找到一些代码)但是当我回到应用程序时连接失败。

到目前为止,有人可以提供任何帮助吗?我的代码目前相当多,所以不知道要粘贴什么,但是bt连接基本上是使用示例中的类,然后将这些创建的套接字传递给我的其他类。

提前致谢

2 个答案:

答案 0 :(得分:3)

使用onDestroy的最佳方式是以下方式,希望你做的是类似的事情。

@Override
protected void onDestroy() {
   if (localBT != null) {
   localBT.close();
   }
   super.onDestroy();
}

答案 1 :(得分:0)

正如Gaks所说,你的问题可能涉及onResume()/ onPause()。你是否绝对确定你的onDestroy清理被调用(例如,你是否正在登录和/或观看logcat)?

如果您的应用不是持久性的,那么在不再使用该应用时(onPause)进行清理可能会更好。

另外,如果你有两个连接,你需要做些什么特别的事情来关闭它们吗?只是猜测那个。