2016-08-22 2 views
0

Ich weiß, dass diese Frage nur wenige Male gestellt wurde, aber keine Lösung löste mein Problem so weit.progressdialog bar in android während des Ladens von webview hält wieder an oder friert manchmal ein

Ich versuche, eine URL hier zu laden, in der es sich von Zeit zu Zeit unterscheiden kann, wie es aus dem Feed abgerufen wird. In meinem Fall laden einige Seiten ohne Probleme und andere während des Ladens der Fortschrittsdialogleiste für eine Sekunde oder so und friert manchmal ein und startet dann erneut und gibt auch nach dem Laden der URL nicht mehr frei.

Dies ist der Code, den ich gerade arbeite:

public class MyAppWebViewClient extends WebViewClient 
{ 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     mwebview.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) 
    { 
     super.onPageStarted(view, url, favicon);    
     webload = new ProgressDialog(MainActivity.this); 
     webload.setMessage("Please wait..."); 
     webload.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
     webload.setCanceledOnTouchOutside(false); 
     webload.show(); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) 
    { 
     super.onPageFinished(view, url); 
     if(webload!=null) 
      webload.dismiss(); 
    } 
} 
+0

Versuchen Sie, Ihre ProgressBar aus der onPageStarted-Methode zu deklarieren und zu überprüfen, ob sie funktioniert. – Chordin4tion

+0

Versucht, dass es aber nicht funktioniert hat. Deklarierte es in der Methode 'smallOverrideUrlLoading' und konnte außerhalb keiner Methode deklarieren –

+1

Da Sie eine andere Klasse für den WebViewClient verwenden, müssen Sie einen Konstruktor mit dem Argument Context verwenden. MainActivity.this funktioniert nicht wie erwartet. – Chordin4tion

Antwort

0

Versuchen Sie es mit Toast und sehen, ob das Programm die webload.dismiss(); richtig erreicht. Als eine andere Frage, machst du all diese Sachen in AsyncTask?

+0

Ich habe es mit Log überprüft. es erreicht die Aussage. Zu Ihrer anderen Frage versuche ich, dies nur auf einen Knopfklick zu nennen, deshalb habe ich AsyncTask –

+0

@ Reaching-Out Well nicht benutzt, Bruder, ich hatte das gleiche Problem beim Laden der Daten von der URL. Da Sie einen Feed (Internet Based) verwenden, empfehle ich dringend, AsyncTask zu verwenden. Ich werde die Antwort in ein paar Minuten veröffentlichen. – aligholamee

Verwandte Themen