Vider le Cache de l'Application Android, par programmation
quelle est la bonne façon d'effacer le cache de l'Application android de la programmation. J'ai déjà l'utilisation de code suivant mais sa regarde pas de travail pour moi
@Override
protected void onDestroy() {
//TODO Auto-generated method stub
super.onDestroy();
clearApplicationData();
}
public void clearApplicationData() {
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("lib")) {
deleteDir(new File(appDir, s));
Log.i("EEEEEERRRRRRROOOOOOORRRR", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
}
}
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
- vérifiez également getExternalCacheDir()
- peut-on vider le cache juste pour webview?
- WebView.clearCache(boolean includeDiskFiles) va effacer le cache de tous les webvies dans l'application
- Double Possible de Comment faire pour effacer le cache Android
- u ne trouver la solution pour le problème ci-dessus
- Ci-dessous accepté de Répondre est la solution
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la recherche pour supprimer le cache de votre application, puis il suffit de supprimer votre répertoire de cache et son tout fait !
if (dir != null && dir.isDirectory()) { ... }
else if(dir.isFile()) { return dir.delete(); }
Kotlin a un one-liner
La réponse de dhams est correcte (après avoir été modifié à plusieurs reprises), mais que les nombreuses modifications du code de la montre, il est difficile d'écrire correct et robuste code pour supprimer un répertoire (avec des sous-répertoires) de vous-même. Donc, je vous suggère fortement de l'aide Apache Commons IO, ou d'une autre API qui fait cela pour vous:
PS: Aussi supprimer le répertoire renvoyé par le contexte.getExternalCacheDir() si vous l'utiliser.
Pour être en mesure d'utiliser Apache Commons IO, ajoutez ceci à votre
build.gradle
fichier, dans ledependencies
partie:implementation 'commons-io:commons-io:2.5'
. J'ai essayé de 2,6 premier, mais j'ai une erreur, comme noSuchMethodException, veuillez donc maintenant seulement utiliser la version 2.5. Dernières versions ici: mvnrepository.com/artifact/commons-io/commons-ioJe pense que vous êtes censé placer
clearApplicationData()
avant lasuper.OnDestroy().
Votre application ne peut pas traiter toutes les méthodes, quand il a été arrêté.
Je ne suis pas sûr, mais je sème ce code trop.
cette morue va travailler plus vite et dans mon esprit sa simple aussi.
juste obtenir votre apps répertoire de cache et de supprimer tous les fichiers dans le répertoire
Il récupère tous les fichiers de cache dans le Fichier de tableau par getBaseContext().getCacheDir().listFiles()
et puis supprime un par un dans une boucle par fichier.supprimer les messages postés() la méthode
Essayer cette