Я пытаюсь использовать shouldInterceptRequest, чтобы закрыть мой веб-просмотр, когда я хочу загрузить определенный URL-адрес, но приложение вылетает, когда я это делаю.Android-приложение падает на shouldInterceptRequest
Для проверки URL-адреса против того, что происходит из Интернета, я использую метод webview.getURL(). Я использую этот метод в потоке пользовательского интерфейса, чтобы получить URL-адрес.
Пожалуйста, найти свой код ниже
public WebResourceResponse shouldInterceptRequest(final WebView view, String url) {
WebActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
CloseURL = webView.getUrl();
}
});
if (CloseURL.contains("dummyurl") &&BackPressed) {
BackPressed=false;
CloseURL="";
WebActivity.this.finish();
}
return super.shouldInterceptRequest(view, url);
}
и StackTrace это? –
Во-вторых, почему используется uithread здесь. Я думаю, что это уже в uithread. – hariszaman
В stacktrace я получаю предупреждение: 07-28 19: 34: 05.450: W/webview_proxy (13113): java.lang.Throwable: Warning: метод WebView был вызван в потоке 'WebViewCoreThread'. Все методы WebView должны быть вызваны в потоке пользовательского интерфейса. Будущие версии WebView могут не поддерживать использование других потоков. – VaV