当bluetoothServersocket.accept();在主线程中调用bluetoothServersocket.close()时,Android应用程序退出,没有任何警告和错误。另一个线程的传入连接被阻止。
这是我的代码片段。
公共无效run(){
尝试{
bluetoothServerSocket =蓝牙适配器。
getDefaultAdapter()。listenUsingRfcommWithServiceRecord(LISTEN_NAME,LISTEN_UUID);
/ *此处阻止传入连接的线程* /
bluetoothSocket = bluetoothServerSocket.accept();
...
} catch(Exception e){}最后{
尝试{bluetoothServerSocket.close();} catch(exException ex){}
尝试{bluetoothSocket.close();} catch(Exception ex){}
}
}
并在活动中。
public void onStop(){
试试{thread.bluetoothSocket.close();} catch(Exception ex){}
试试{thread.bluetoothServerSocket.close();} catch(Exception ex){}
super.onStop();
}
当我单击后退按钮时。活动已关闭,但大约一秒钟后,该应用程序退出,没有任何警告。
我的Android OS版本是2.2。 HTC Desire设备。
最佳答案
我们应该像这样关闭一个蓝牙连接:
尝试{同步(bluetoothServerSocket){bluetoothServerSocket.close();}} catch(Exception ex){}