Полностью остановить Android-веб-просмотр - PullRequest
1 голос
/ 27 февраля 2012

У меня есть веб-браузер для Android, и я могу позволить пользователю использовать свой собственный javascript внутри обратного вызова window.onload (он полностью изолирован, и я лично не вижу угрозы безопасности). Проблема возникает, если введено что-то вроде следующего

while(true){
}

Что касается Java, я запускаю таймер, и через 5 секунд, если JavaScript все еще работает, я пытаюсь остановить веб-просмотр. Я пробовал разные вещи:

webView.stopLoading();
webView.loadData("", "text/html", null);
webView.freeMemory();
webView.pauseTimers();
webView.destroy();
Class.forName("android.webkit.WebView").getMethod("onPause", (Class[]) null).invoke(webView, (Object[]) null);

каждый становится немного более отчаянным :). Ничего не работает, и поток продолжает использовать процессор, пока я не выйду из приложения. Кто-нибудь знает, как я могу это правильно остановить?

Любая помощь очень ценится, Ian

1 Ответ

0 голосов
/ 11 марта 2012

Вы пытались отключить JavaScript перед уничтожением WebView? Кажется, что интерпретатор JavaScript переживает ваш WebView, но, возможно, если вы скажете ему прекратить выполнение, то вы решите свою проблему. Я бы попробовал использовать это в верхней части вашего хронометража:

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