La mia domanda è diversa da this un ragazzo .. I wany la mia finestra di avanzamento inizia quando il caricamento della pagina inizia e termina quando il caricamento della pagina termina nella mia webview. Il mio problema è che la finestra di dialogo dell'avvio inizia e non viene mai ignorata. Ho impostato i punti di interruzione per mostrare che la finestra di dialogo dell'avvio si avvia e viene chiusa più volte, quindi inizia e non viene chiusa anche dopo il caricamento della pagina. La mia domanda è: perché onPageStarted viene eseguito più volte per il caricamento di una singola pagina? e perché onPageFinished non viene chiamato dopo il completamento del caricamento della pagina?onPageStart chiamato molte volte e onPageFinished non chiamato per singola pagina
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
myWebView.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(myWebView, url, favicon);
Log.d("mytag","Page Loading Started");
//myURLProgressDialog= ProgressDialog.show(WebviewExampleActivity.this, "Page Loading", "Wait for a moment...");
}
@Override
public void onPageFinished(WebView view, String url) {
Log.d("mytag","Page Loading Finished!");
super.onPageFinished(myWebView, url);
//myURLProgressDialog.dismiss();
}
});
My self etichettato filtrato Log è così per il caricamento di pagina singola:
10-06 10:32:49.298: DEBUG/mytag(508): Page Loading Started
10-06 10:32:49.998: DEBUG/mytag(508): Page Loading Started
10-06 10:32:50.048: DEBUG/mytag(508): Page Loading Finished!
10-06 10:32:50.048: DEBUG/mytag(508): Page Loading Started
10-06 10:33:00.898: DEBUG/mytag(508): Page Loading Finished!
Quando sto cliccando sul link a pagina già caricata funziona benissimo. Ecco Log:
10-06 10:59:25.098: DEBUG/mytag(543): Page Loading Started
10-06 10:59:30.889: DEBUG/mytag(543): Page Loading Finished!
Penso che sia più accurato per 'non shouldOverrideUrlLoading' per caricare l'URL e semplicemente restituire 'false'. Vedi [questo tutorial di Jakob Jenkov] (http://tutorials.jenkov.com/android/android-web-apps-using-android-webview.html) per una chiara spiegazione di ciò. – ComDubh