android progressBar no actualiza la vista de progreso / dibujable

dos barras que muestran el progreso de un juego. Si el usuario obtiene puntos o se acabó el tiempo, etc., las barras de progreso deberían actualizarse:

private TextView tv;
private ProgressBar levelHoldBar;
private ProgressBar levelUpBar;

//...
private void updateViews() {

    // ...
    levelHoldBar.setMax(currentLevel.getThreshold());
    levelHoldBar.setProgress(currentPoints > currentLevel.getThreshold() ? currentLevel.getThreshold() : currentPoints);

    levelUpBar.setMax(nextLevel.getThreshold());
    levelUpBar.setProgress(currentPoints > nextLevel.getThreshold() ? nextLevel.getThreshold() : currentPoints);

    tv.setText(currentPoints+"/"+currentLevel.getThreshold());

    Log.d(TAG, "hold prog/max "+levelHoldBar.getProgress()+"/"+levelHoldBar.getMax());
    Log.d(TAG, "up   prog/max "+levelUpBar.getProgress()+"/"+levelUpBar.getMax());
}

es decir. Salidas:

12-03 17:48:33.918: DEBUG/MainActivity(6829): hold prog/max 20/20
12-03 17:48:33.918: DEBUG/MainActivity(6829): up   prog/max 20/50

El Log.d (...) al final muestraSIEMPRE los valores correctos, peroA VECES Las barras visuales de las barras de progreso no muestran los progresos correctos. Muestran progresos que se habían establecido previamente incluso si los captadores para "máximo" y "progreso" devuelven valores correctos (en el ejemplo, la barra muestra aproximadamente el 20% (en lugar del 100%) para el levelHoldBar y aproximadamente el 2% (en lugar de 40 %) para el levelUp-bar). No puedo entender, ¿por qué la salida del registro es correcta pero los elementos dibujables están equivocados? ¡TextView (tv) se actualiza correctamente! ¿Que está pasando aqui? ¿Cómo puedo arreglar eso?

Respuestas a la pregunta(15)

Su respuesta a la pregunta