140 votes

Effacer les données de l'application par programmation

Je souhaite effacer les données de mon application par programme.

Les données de l'application ressemblent aux bases de données, aux fichiers de préférences partagés et aux autres fichiers créés avec dans l'application.

Nous pouvons effacer les données du mobile via Paramètres-> Applications-> ManageApplications-> My_application-> Clear Data

Mais est-il possible de faire la même chose avec un programme Android?

Merci d'avance Uday

111voto

MinceMan Points 1583

Je suis juste de mettre le tutoriel de le lien ihrupin posté ici dans ce post.

package com.hrupin.cleaner;

import java.io.File;

import android.app.Application;
import android.util.Log;

public class MyApplication extends Application {
    private static MyApplication instance;

    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
    }

    public static MyApplication getInstance() {
        return instance;
    }

    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("TAG", "**************** 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();
    }
}

Donc, si vous voulez un bouton pour ce faire, vous devez appeler MyApplication.getInstance(). clearApplicationData() dans un onClickListener

Mise à jour: Votre sharedPreferences instance peut tenir sur vos données et de recréer le fichier de préférences après que vous les supprimiez. Donc, vous allez vouloir pour obtenir votre SharedPreference objet et

prefs.edit().clear().commit();

0voto

Christopher Perry Points 7972

Si vous voulez un hack moins bavard:

 void deleteDirectory(String path) {
  Runtime.getRuntime().exec(String.format("rm -rf %s", path));
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X