Приложение для Android вышло без предупреждения и ошибки, когда bluetoothServersocket.close () вызывается в главном потоке, а bluetoothServersocket.accept ();был заблокирован для входящих соединений в другом потоке.
Вот части моего кода.
public void run () {
try {
bluetoothServerSocket = BluetoothAdapter.getDefaultAdapter (). listenUsingRfcommWithServiceRecord (LISTEN_NAME, LISTEN_UUID);
/ * заблокированный здесь поток для входящих соединений * /
bluetoothSocket = bluetoothServerSocket.accept ();
*20.
} catch (Exception e) {} finally {
try {bluetoothServerSocket.close ();} catch (Exception ex) {}
try {bluetoothSocket.close ();} catch (Exception ex) {}
}
}
И в действии.
public void onStop () {
try {thread.bluetoothSocket.close ();} catch (Exception ex) {}
try {thread.bluetoothServerSocket.close ();} catch (Exception ex) {}
super.onStop ();
}
Когда я нажал кнопку возврата.Действие закрылось, но примерно через одну секунду приложение закрылось без предупреждения.
Моя версия для Android OS 2.2.устройство HTC Desire.