Приложение Android неожиданно закрылось, когда я закрыл сокет сервера Bluetooth или сокет Bluetooth

Приложение для 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.


person Lewisou    schedule 26.12.2010    source источник


Ответы (1)


Мы должны закрыть Bluetooth-соединение следующим образом:

попробуйте { синхронизировано (bluetoothServerSocket) {bluetoothServerSocket.close();}} catch (Exception ex) {}

person Lewisou    schedule 03.01.2011