Tenga en cuenta que una instancia de ViewTreeObserver
asociada con una instancia de View
puede dejar de ser válida mientras esa View
aún esté activa. Desde el View.getViewTreeObserver
View.getViewTreeObserver:
// The returned ViewTreeObserver observer is not guaranteed to remain
// valid for the lifetime of this View. If the caller of this method keeps
// a long-lived reference to ViewTreeObserver, it should always check for
// the return value of {@link ViewTreeObserver#isAlive()}.
Por lo tanto, si anteriormente ha agregado un servicio de escucha a una instancia de ViewTreeObserver
y ahora desea eliminarlo, es más fácil llamar a getViewTreeObserver
en la instancia de View
correspondiente para recibir una instancia nueva de ViewTreeObserver
. (Verificación de isAlive
en una instancia existente es más trabajo para un pequeño beneficio; si ViewTreeObserver
ya no está activo, ¡de todos modos obtendrá esa nueva referencia!)