CommonsWare прав о проблеме. Более конкретно, ваш вызов для загрузки контента в WebView происходит асинхронно (что хорошо - он не блокирует пользовательский интерфейс во время загрузки страницы). В результате ваш вызов для отмены диалога выполняется, не дожидаясь, когда loadUrl WebView фактически завершит свой сетевой вызов (что происходит в другом потоке). То, что вы, вероятно, захотите сделать, - это отключить загрузчик после завершения загрузки страницы и возврата к фоновому потоку; для примера того, как сделать это увидеть второй пример в WebView documentation, чтобы увидеть, как зе chromeclient WebView в с onProgressChanged вызова:
// Let's display the progress in the activity title bar, like the
// browser app does.
getWindow().requestFeature(Window.FEATURE_PROGRESS);
webview.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 1000);
}
});
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
}
});
webview.loadUrl("http://slashdot.org/");
этот код принести мой телефон FreeZ: Мой используется код HTTP: // codeviewer .org/view/code: 13b9 – user422039
Замораживание или крушение? И есть ли трассировка? Вы также создаете новый WebView, но, похоже, вы не привязываете его к своему расположению в любом месте, поэтому вы ничего не увидите. Вы должны либо быть findViewById-ов WebView из вашего макета XML, либо создать свой WebView и привязать его к корневой компоновке после факта. –
Я хочу сделать это без xml .. – user422039