Android Webview - Complètement vider le Cache

J'ai une WebView dans un de mes Activités, et quand il charge une page web, la page rassemble quelques données de base à partir de Facebook.

Ce que je vois, cependant, est la page affichée dans le formulaire de demande est le même à chaque fois que l'application est ouverte et rafraîchie.

J'ai essayé de réglage de la WebView ne pas utiliser le cache et effacer le cache et l'historique de la WebView.

J'ai également suivi la suggestion ici: Comment vider le cache de WebView?

Mais rien de tout cela fonctionne, est-ce quelqu'un a une idée je peux surmonter ce problème, car il est une partie essentielle de ma demande.

    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"));

J'ai donc mis en place la première suggestion (Bien changé le code récursif)

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");
}
}
}

Toutefois, cela n'a toujours pas changé ce que la page est affichée. Sur mon navigateur de bureau, je suis différente code html de la page web produite dans la WebView donc je connais la WebView doit être mise en cache quelque part.

Sur le canal IRC, j'ai été rappelé pour un correctif pour supprimer la mise en cache à partir d'une URL de Connexion, mais ne peut pas voir comment l'appliquer à une WebView encore.

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

Si je supprime mon application et ré-installer, je peux obtenir la page web en arrière jusqu'à ce jour, c'est à dire un non-version mise en cache. Le principal problème est que les modifications sont apportées aux liens dans la page web, de sorte que l'extrémité avant de la page web est complètement inchangé.

  • mWebView.getSettings().setAppCacheEnabled(false); n'a pas fonctionné ?
InformationsquelleAutor Matt Gaunt | 2010-03-17