有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 安卓应用程序在退出时未正确释放蓝牙

我迫切需要解决这个问题,因为某些原因,我在另一台设备上测试了我的蓝牙应用程序,当我关闭应用程序(onDestroy())并重新输入时,蓝牙连接失败。目前唯一的解决方案是为设备关闭和打开蓝牙

我使用的代码或多或少是安卓的bluetoothchat示例。我创建了2个bt连接到先前选择的设备

然后,我使用inputstream和output stream与这些socket来回通信

当我的应用程序被破坏时——我关闭输入和输出以及蓝牙插座,我甚至会终止进程(在这里发现一些代码),但当我返回应用程序时,连接失败

到目前为止,有人能从我说的话中提供帮助吗?目前我的代码很多,所以我不知道要粘贴什么,但bt连接基本上是使用示例中的类,然后将这些创建的socket传递给我的其他类

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    正如Gaks提到的,您的问题可能涉及onResume()/onPause()。您是否绝对确定调用了onDestroy清理(如中所示,您是否正在记录和/或观看logcat)

    如果你的应用程序不是持久的,最好在应用程序不再使用时进行清理(onPause)

    另外,如果你有两个连接,你需要做些什么来关闭它们?我只是猜测一下

  2. # 2 楼答案

    使用onDestroy的最佳方式是按照以下方式,希望您也在做类似的事情

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