试试这个方法来清除缓存和应用程序数据(尝试和棒棒糖完美工作): -
(1)添加下面ClearApplicationData
类改变你的AcivityName在progressDialog和您的sharedPreference用编辑清除的名称: -
private class ClearApplicationData extends AsyncTask<Void, String, String> {
ProgressDialog mDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
mDialog = new ProgressDialog(MainActivity.this); //Change MainActivity as per your activity
mDialog.setMessage("Data is clearing...");
mDialog.setCancelable(false);
mDialog.show();
}
protected String doInBackground(Void... urls) {
SharedPreferences.Editor editor = mContext.getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE).edit();
editor.clear();
editor.apply();
File cacheDir = mContext.getCacheDir();
File appDir = new File(cacheDir.getParent());
deleteRecursive(appDir);
return "";
}
protected void onPostExecute(String result) {
mDialog.dismiss();
Toast.makeText(mContext, "Data is cleared.", Toast.LENGTH_SHORT).show();
finish(); //Activity finish
}
}
(2)下面添加功能递归的方法来删除文件: -
public void deleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory()) {
for (File child : fileOrDirectory.listFiles()) {
deleteRecursive(child);
}
}
fileOrDirectory.delete();
}
(3)打电话时要清除应用程序数据的类: -
new ClearApplicationData().execute();
有什么你有数据?共享首选项?数据库?你可以分开擦拭两者。 – Vucko
同时拥有数据库和首选项, – Dedeepthika
希望此链接将帮助您:https://www.hrupin.com/2011/11/how-to-clear-user-data-in-your-android-application-programmatically –