Приложение для Android завершилось без каких-либо предупреждений и ошибок, когда bluetoothServersocket.close() вызывается в основном потоке, а bluetoothServersocket.accept(); был заблокирован для входящих соединений в другом потоке.
Вот фрагменты моего кода.
публичный недействительный запуск () {
пытаться {
bluetoothServerSocket = адаптер Bluetooth. getDefaultAdapter().listenUsingRfcommWithServiceRecord(LISTEN_NAME, LISTEN_UUID);
/* здесь поток заблокирован для входящих соединений */
bluetoothSocket = bluetoothServerSocket.accept();
...
} catch(Exception e) {} наконец {
попробуйте {bluetoothServerSocket.close();} поймать (исключение ex) {}
попробуйте {bluetoothSocket.close();} поймать (исключение ex) {}
}
}
И в деятельности.
общественное недействительное onStop () {
try{thread.bluetoothSocket.close();} catch(Exception ex) {}
try{thread.bluetoothServerSocket.close();} catch(Exception ex) {}
супер.onStop();
}
Когда я нажал кнопку «Назад». Активность закрылась, но примерно через секунду приложение закрылось без предупреждения.
Моя версия ОС андроид 2.2. устройство HTC Desire.