Qual é a melhor maneira de verificar se a vista está visível na janela?

Qual é a melhor maneira de verificar se a vista está visível na janela?

Eu tenho um CustomView que faz parte do meu SDK e qualquer pessoa pode adicionar o CustomView aos seus layouts. Meu CustomView está executando algumas ações quando é visível para o usuário periodicamente. Portanto, se a visualização se tornar invisível para o usuário, ele precisará interromper o temporizador e, quando se tornar visível novamente, deve reiniciar seu curso.

Infelizmente, porém, não há uma maneira certa de verificar se meu CustomView se torna visível ou invisível para o usuário. Existem algumas coisas que posso verificar e ouvir:

onVisibilityChange //it is for view's visibility change, and is introduced in new API 8 version so has backward compatibility issue
onWindowVisibilityChange //but my CustomView can be part of a ViewFlipper's Views so it can pose issues
onDetachedFromWindows //this not as useful
onWindowFocusChanged //Again my CustomView can be part of ViewFlipper's views.
Portanto, se alguém já enfrentou esse tipo de problema, lembre-se.

questionAnswers(3)

yourAnswerToTheQuestion