Android. По какой причине отваливается устройство, подключенное к приложению по Bluetooth?
Добрый день! Возник вопрос, возможно, укажете направление, куда копать... В приложении работает несколько потоков, и при добавлении очередного потока (вроде бы именно после этих действий, а может и нет) в логе Android Studio при работе приложения, иногда проскакивает лог I/art: Explicit concurrent mark sweep GC freed 11115(1207KB) AllocSpace objects, 23(428KB) LOS objects, 26% free, 43MB/59MB, paused 1.015ms total 84.963ms . Как я понял, этот лог говорит о том, что сборщик мусора удалил либо какие-то объекты моей программы, либо возможно, остановил поток. Но вследствие его действий, вываливается ошибка в логе W/System.err: java.io.IOException: bt socket closed, read return: -1 и устройство, которое взаимодействует с моим приложением по bluetooth, отваливается, и его приходится заново подключать . В чём проблема может быть? Из-за кривого кода, из-за неправильно созданных потоков, или быть может, можно выставить какой-то приоритет для приложения, чтобы не убивались элементы моего приложения?
Tsimur_S: увы, но код для работы с bluetooth находится jar файле, это api, которое используется для работы с этими bluetooth девайсами, редактировать там что-либо не представляется возможным. А внтутри треда, предположительно после создания которого начались отвалы, я создаю веб-сокет, не понимаю, какая вообще может быть зависимость веб-сокета с отвалами блютуза..
WebSocket ws;
new Thread(new Runnable() {
@Override
public void run() {
try {
ws = new WebSocketFactory().createSocket(SERVER3);
Log.i("TUNNEL", "1");
ws.addHeader("access-token", "1");
ws.addListener(new SoketListner());
ws.connect().sendText(jo.toString());
} catch (WebSocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
Tsimur_S: Вот такой вот лог ошибки, 5 строка с ошибкой относится к этому api
W/System.err: java.io.IOException: bt socket closed, read return: -1
W/System.err: at android.bluetooth.BluetoothSocket.read(BluetoothSocket.java:495)
W/System.err: at android.bluetooth.BluetoothInputStream.read(BluetoothInputStream.java:96)
W/System.err: at java.io.InputStream.read(InputStream.java:162)
W/System.err: at com.ihealth.communication.base.bt.BtCommThread.run(Unknown Source)