Песочные часы должны показываться только в том случае, если блокировка события удерживается слишком долго, поэтому, если ваш метод getFormatted () не слишком медленный, я не вижу проблемы с кодом выше.
Возможно, вы захотите попробовать следующий код, чтобы добавить элемент в существующую очередь событий вместо явного захвата блокировки:
private void setRecordingTime(final long maxRecordTime) {
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
label.setText(getFormatted(maxRecordTime));
}
});
}