Я пишу метод, чтобы не писать по нескольку раз 4 строчки.
protected void delay(long time) {
try {
Thread.sleep(time);
} catch (InterruptedException e) {
}
}
Есть смутное подозрение, что время сна округляется до неких значений. Лучше всего вручную взять и померять - засечь время выполнения 100 вызовов delay(1).
Время реакции человека порядка 100мсек. (А иначе в спорте засчитывают фальшстарт) Экран обновляется порядка 20-40 мсек, т.е, обновляться бегать в цикло сильно чаще смысла нет. 10-20 мсек точно хватит, меньше нет смысла делать.
P.S. Насколько delay(1) хуже для батареи телефона - не понятно. Наверно, разницы практически нет.