¿Cuándo es necesario ejecutar invalidate () en una vista?

Mi respuesta aesta pregunta se acaba de aceptar, pero comencé a preguntarme cuándo es necesario invalidar () exactamente una Vista y cuándo no es necesario.

Después de pensar un poco, me di cuenta de quedebería Trabaja más o menos así:

dibujo real de "todo" se produce después deonResume()en "tiempo libre" se pueden volver a dibujar partes de la pantalla, pero solo aquellas que estabaninvalidated (y todo debajo)

Por lo tanto, parecería, si cambio algo despuésonResume() (por ejemplo, como respuesta a un clic de botón, deberíainvalidate() el cambiadoView).

Sin embargo, de lo que scana enesta pregunta dice, debe ser más complejo que eso y depende a veces del método que uno usa.

P.ej. sobre si uno usa

lastClicked.setImageBitmap();

o

lastClicked.setImageResource();

Entonces, ¿cuándo es necesario ejecutar invalidate () en una vista y cómo funciona realmente?

Respuestas a la pregunta(4)

Su respuesta a la pregunta