2010-11-29 12 views
16

WebView'da zaman aşımı değerini belirlemenin bir yolu var mı? url yanıt vermek için çok yavaşsa, WebView'un zaman aşımına uğramasını istiyorum.Android WebView TimeOut

+1

bu yardımcı shud http://stackoverflow.com/a/7772884/169630 –

cevap

12

Geçerli sayfanın ilerleyişini getProgress() çağırarak denetleyen bir Zamanlayıcı ayarlayarak ve belirli bir süre sonra eşikten azsa, geçerli sayfanın yüklenmesini kapatabilirsiniz.

+1

bunu 100 değilse i) zamanlayıcı eklemek ve getProgress (çağırarak geçerli sayfanın ilerleyişini kontrol anlamına Yani do henüz stopLoading() öğesini arayabilirim. – user430926

5

Timer yerine WebViewClientonLoadResource yöntemini kullanabiliriz. Şunun gibi:

webView.setWebViewClient(new WebViewClient() { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return false; 
    } 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     super.onPageStarted(view, url, favicon); 
     progressDialog.show(); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 
     Log.d("WEBCLIENT", "onPageFinished"); 
    } 

    @Override 
    public void onLoadResource(WebView view, String url) { 
     super.onLoadResource(view, url); 
     Log.d("WEBCLIENT","onLoadResource"); 

     if(webView.getProgress() == 100) { 
      progressDialog.dismiss(); 
     }  
    } 
} 
+0

Web görünümü tamamen sıkışmışsa bunun işe yaramayacağını düşünüyorum. –

+0

web sayfası sıkışmış araçlar ise ilerleme çubuğu kadar gösterilecektir Yani, ilerleme, 100 olmayacak webView.getProgress() 100 – John

+1

olan soru ilerleme çubuğu, ancak zaman aşımı ilgili değildi. Bu yöntem, web sayfasının yüklenmesi, yüzde olarak tamamen kapanırsa, bu işlevler işe yaramazdı, çünkü bu işlevlerin hiçbiri aranmayacaktı, bu yüzden harekete geçme ihtimali yok. –