La forma más eficiente para el cambio dinámico de color de texto en TextView

Quiero cambiar el color de las partes de un texto varias veces con un temporizador.

La forma más sencilla es esta:

SpannableStringBuilder ssb = new SpannableStringBuilder(mainText);
ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE);
ssb.setSpan(span, start, end, 0);
tv.setText(ssb);

Pero si ejecuto el código anterior varias veces en un segundo, realmente cambio el texto completo (grande) deTextView cada vez, por lo que se producirá una carga de CPU de memoria no deseada específicamente en dispositivos de gama baja.

¿Cómo puedo tener una sola?Span enTextView y solo cambiar elSpan posición inicial y final?

¿Funcionará en absoluto o se producirá un reemplazo de texto completo detrás de la escena?

Mi texto es fijo y no cambiará nunca.

Respuestas a la pregunta(3)

Su respuesta a la pregunta