Clear user own apps data programmatically

2020-03-10 04:15发布

I am developing an app where I want to allow the user to be able to set up that if they fail the login after a couple of attempts into the app, it will automatically delete all the data including the preferences and databases.

Is there a simple way to do this or do I have to write code to manually reset everything the app uses?

标签: android
2条回答
Evening l夕情丶
2楼-- · 2020-03-10 05:01

Is there a simple way to do this or do I have to write code to manually reset everything the app uses.

You have to write code to manually reset everything the app uses. This should just be a matter of deleting a handful of files. Make sure your database is closed before you try deleting it.

查看更多
▲ chillily
3楼-- · 2020-03-10 05:09

try this code .

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();
}
查看更多
登录 后发表回答