Quando é necessário executar invalidate () em um View?

Minha resposta paraessa questão foi apenas aceito, mas eu comecei a me perguntar quando exatamente alguém precisa invalidar () um View e quando não é necessário?

Depois de pensar um pouco, percebi quedevemos trabalhe mais ou menos assim:

o desenho real de "tudo" ocorre depoisonResume()em tempo "livre" partes da tela podem ser redesenhadas, mas apenas aquelas que foraminvalidated (e tudo embaixo)

Portanto, parece que, se eu mudar alguma coisa depoisonResume() (por exemplo, como resposta a um clique no botão, eu deveriainvalidate() a mudançaView).

No entanto, de que scana emessa questão diz, deve ser mais complexo do que isso e depende, às vezes, do método usado.

Por exemplo. sobre se um usa

lastClicked.setImageBitmap();

ou

lastClicked.setImageResource();

Então, quando é necessário executar invalidate () em um View e como ele realmente funciona?

questionAnswers(4)

yourAnswerToTheQuestion