Android手動清除APP中Data目錄下的檔案
阿新 • • 發佈:2019-02-17
在專案中這樣的需求,在使用者觸發重置的時候需要清除自身APP中的資料,APP自身的資料儲存在/data/data/packagename/目錄下,如下圖:
lib目錄下儲存so庫檔案,不能清除,需清除其他目錄下的檔案;
Java程式碼
lib目錄下儲存so庫檔案,不能清除,需清除其他目錄下的檔案;
Java程式碼
- /**
- * 清除APP資料
- */
- private void clearData() {
- // final String path = "/data/data/" + getPackageName().toString();
-
final String path = getFilesDir().getParent();
- //清空配置檔案目錄shared_prefs;
- File file_xml = new File(path + "/shared_prefs");
- if (file_xml.exists()) {
- File[] files = file_xml.listFiles();
- for (int i = 0; i < files.length; i++) {
- files[i].delete();
- }
- }
-
//清空快取目錄;
- File file_cache = getCacheDir();
- if (file_cache.exists()) {
- File[] files = file_cache.listFiles();
- for (int i = 0; i < files.length; i++) {
- files[i].delete();
- }
- }
- //清空file目錄;
-
File file_file = new
- if (file_file.exists()) {
- File[] files = file_file.listFiles();
- for (int i = 0; i < files.length; i++) {
- files[i].delete();
- }
- }
- //清空資料庫目錄;
- File file_db = new File(path + "/databases");
- if (file_db.exists()) {
- File[] files = file_db.listFiles();
- for (int i = 0; i < files.length; i++) {
- files[i].delete();
- }
- }
- //這裡可以重啟你的應用程式,我的app中有service,所以我只要殺死程序就自動重啟了。
- android.os.Process.killProcess(android.os.Process.myPid());
- }