SORU
17 Mart 2010, ÇARŞAMBA


Android web görünümü Tamamen boşalt

Çalışmalar bir web görünümü var, ve bir web sayfası yüklendiğinde, Facebook sayfasında bazı arka plan verileri toplar.

Gerçi, Bu sayfa uygulamada görüntülenen gördüklerim app açıldı ve yenilenir her zaman aynıdır.

Önbellek kullanımı ve web görünümü önbelleğini ve geçmişini temizlemek için değil web görünümü ayarı denedim.

Ayrıca burada öneri takip ettim: How to empty cache for WebView?

Ama bu işlerin hiçbiri, Herkes herhangi bir fikir var mı benim uygulamanın önemli bir parçasıdır, çünkü bu sorunun üstesinden gelebilir.

    mWebView.setWebChromeClient(new WebChromeClient()
    {
           public void onProgressChanged(WebView view, int progress)
           {
               if(progress >= 100)
               {
                   mProgressBar.setVisibility(ProgressBar.INVISIBLE);
               }
               else
               {
                   mProgressBar.setVisibility(ProgressBar.VISIBLE);
               }
           }
    });
    mWebView.setWebViewClient(new SignInFBWebViewClient(mUIHandler));
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.clearHistory();
    mWebView.clearFormData();
    mWebView.clearCache(true);

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

    Time time = new Time();
    time.setToNow();

    mWebView.loadUrl(mSocialProxy.getSignInURL() "?time=" time.format("%Y%m%d%H%M%S"));

İlk öneri kodu özyinelemeli olarak değiştirildi Rağmen) uygulanmaktadır

private void clearApplicationCache()
{
    File dir = getCacheDir();

    if(dir!= null && dir.isDirectory())
    {
        try
        {
            ArrayList<File> stack = new ArrayList<File>();

            // Initialise the list
            File[] children = dir.listFiles();
            for(File child:children)
            {
                stack.add(child);
            }

            while(stack.size() > 0)
            {
                Log.v(TAG, LOG_START "Clearing the stack - "   stack.size());
                File f = stack.get(stack.size() - 1);
                if(f.isDirectory() == true)
                {
                    boolean empty = f.delete();

                    if(empty == false)
                    {
                        File[] files = f.listFiles();
                        if(files.length != 0)
                        {
                            for(File tmp:files)
                            {
                                stack.add(tmp);
                            }
                        }
                    }
                    else
                    {
                        stack.remove(stack.size() - 1);
                    }
                }
                else
                {
                    f.delete();
                    stack.remove(stack.size() - 1);
                }
            }
        }
        catch(Exception e)
        {
            Log.e(TAG, LOG_START "Failed to clean the cache");
        }
    }
}

Ancak bu sayfayı görüntülüyor ne değişmedi. Farklı bir html web sayfası web görünümü olarak üretilen kodunu alıyorum tarayıcı benim masaüstünde bu yüzden web görünümü bir yerde önbelleğe alma olduğunu biliyorum.

IRC Kanalı üzerinde URL Bağlantısı önbellekleme kaldırmak için bir düzeltme için işaret ettim ama bir web görünümü uygulamak için nasıl henüz göremiyor.

http://www.androidsnippets.org/snippets/45/

Eğer benim uygulama ve yeniden yüklemek silersem, web sayfası, yani olmayan önbelleğe alınmış bir sürümü. tarih için geri getirebilirim Asıl sorun bu değişiklikler web sayfası bağlantıları yapılır, web sayfası ön tarafı tamamen değişmez.

CEVAP
21 Mart 2012, ÇARŞAMBA


Önbelleğini temizlemek için bile zarif ve basit bir çözüm buldum

WebView obj;
obj.clearCache(true);

http://developer.android.com/reference/android/webkit/WebView.html#clearCache(boolean)

Önbelleği temizlemek için bir yol bulmaya çalışıyorum, ama yukarıda bahsedilen yöntemleri yapabileceğimiz tüm yerel dosyaları kaldırmak, ama asla RAM alınmaz.

API clearCache, RAM web görünümü tarafından kullanılan boşaltır ve dolayısıyla web sayfasının yeniden yüklenmesi gerekebilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • natescamp

    natescamp

    30 NİSAN 2009
  • TheDigiCraft

    TheDigiCraft

    25 NİSAN 2011