Как определить LAST PictureListener.onNewPicture () вызов? - PullRequest
3 голосов
/ 28 апреля 2011

С одной стороны, WebViewClient.onPageFinished() - это отличный способ узнать, когда веб-страница закончила загрузку (как в HttpGet), но он не сообщит мне, когда веб-страница закончит рендеринг.

С другойстороны, есть PictureListener.onNewPicture(), который уведомляет меня всякий раз, когда страница (пере) отображается.

Это отлично подходит для большинства случаев, но для страниц, которые сильно рендерится в Javascript (например, YouTube),Мне нужно знать, когда последний такой рендеринг (для этой страницы) произошел.

Что-то вроде PictureListener.onNewPictureFinished().

Такой функции не существует,конечно, в PictureListener , поэтому мне сейчас интересно, можно ли придумать подобную функциональность или обходной путь?

Есть какие-нибудь идеи, как определить last PictureListener.onNewPicture() call?

(одна идея, которая у меня есть, это установить таймер, который решит, что «если в течение X секунд не было вызвано onNewPicture (), то предыдущий должен был быть последним».крайне неточный и нечеткий подход, которыйch гарантированно потерпит неудачу во многих сценариях).

1 Ответ

1 голос
/ 07 мая 2011

У меня был такой же вопрос в немного другой ситуации.

API не обеспечивает обратный вызов для последнего onNewPicture, потому что
Сам WebView не знает, является ли текущее изображение последним или нет.

Ваш обходной путь с некоторой оптимизацией достаточно хорош ...

Если у вас есть возможность изменить html, вы можете включить js-callback через Интерфейс JavaScript .
Например, он будет вызван, когда закончится видео.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...