¿Cómo determinar cuándo Android WebView ha terminado de cargarse?

Quiero saber cómo determinar cuándo un WebView escompletament hecho la carga.

Déjame definircompletament.

Todas las redirecciones han sucedido La página se muestra visiblemente, todavía no se ha cargado nada

Bad responde a esta pregunta:

WebViewClient.onPageFinished(): se activa varias veces si hay redireccionamientos que cargan una página. También se dispara antes de que se muestre la página.

PictureListener.onNewPicture(): esto se dispara cada vez que cambia la pantalla y AFICA la redirección. ¿Cómo sabría qué disparo es el final?

WebChromeClient.onProgressChanged(): el mismo problema que onPageFinished. (Agregado después de que David sugirió esta solución a continuación)

Thread.sleep(5000) - debería ser obvio, por qué esto no es aceptable.

Por supuesto, una combinación inteligente de lo anterior que funcione sería perfecta.

¿Por qué quiero saber esto que preguntas? Porque quiero inyectar algunos javascriptuna ve una vez que la vista web escompletament hecho la carga.

Respuestas a la pregunta(2)

Su respuesta a la pregunta