Как убить Android WebView, когда в бесконечном цикле JavaScript?
У меня есть Activity_1 с WebView_1.
Я открываю Activity_2 с WebView_2 через Intent (StartActivityForResult) из Activity_1.
Но WebView_2 отображает внешний веб-сайт с возможностью фрагмента JavaScript, содержащего бесконечный цикл. Я обнаружил бесконечный цикл из Activity_1, так как Activity_2 не отвечает в течение длительного времени (не возвращает никакого результата).
Как я могу остановить WebView_2 или даже убить Activity_2 из Activity_1, не нарушая WebView_1?
Я занимаюсь этим около 2 дней... Следующее не работает:
- WebView_2.destroy (),.onPause () и т. Д., Вызываемые из Activity_1 через статическую ссылку -> WebView просто продолжает бесконечный цикл, не останавливаясь.
- Activity_2.finish () вызывается из Activity_1 через статическую ссылку -> Activity_2 уничтожена и исчезла, но WebView_1 заморожен!
- Перейдите в WebView_2 где-нибудь еще -> WebView не отвечает, просто запускает скрипт.
Похоже, что если WebView переходит в бесконечный цикл JS, то все другие WebViews приложения замораживаются даже в других действиях. Могу ли я запустить WebView_2 в "песочнице" и убить его, если столкнусь с большим временем отклика? Без влияния на другие WebViews, конечно.
Единственное решение, которое я знаю, чтобы убить WebView в бесконечном цикле - это System.exit(0), который, к сожалению, убивает все приложение, а не только ошибочную активность.
WebViews - это обновленные Chromium WebViews из Android 5.0.