minitruco-android
minitruco-android copied to clipboard
Melhorar tratamento de `InterruptedException`
Inicialmente eu considerei trocar os loops de thread baseados em sleep por um esquema wait/notify; mas vários deles foram eliminados, então o que restou foi tratar melhor as InterruptedException, que normalmente eu engulo.
https://stackoverflow.com/questions/1087475/when-does-javas-thread-sleep-throw-interruptedexception tem idéias interessantes para lidar com isso; só tem que analisar quando é mesmo pra engolir e quando não (ex.: I/O de Bluetooth/internet).
Também vale consolidar as várias implementações de métodos sleep
.
https://programming.guide/java/handling-interrupted-exceptions.html sugere que, nos casos em que a gente só quer seguir a vida se a thread for interrompida (ex.: em delays ou loops que têm outros mecanismos de saída), marcar ela como interrompida (Thread.currentThread().interrupt();
) é uma boa idéia