安卓清理緩存怎么做(未完)


「查漏補缺,不斷鞏固」

 

《Android中如何清除緩存》

1、清除緩存涉及到的方法

一般來說,比較常有且容易混淆的有下面這兩組:

  • getCacheDir()與getFilesDir()
  • getExternalCacheDir()與getExternalFilesDir()

先說短的:

getCacheDir()方法獲取的路徑是/data/data//cache

getFilesDir()方法獲取的路徑是/data/data//files

再說長的:

Android應用程序在運行過程中,一般是把數據保存在SDCard中的(如果有)。大部分應用的做法是在SD下創建一個文件夾,然后把數據保存在這個文件夾中。但是當該應用被卸載后,這些數據還留在原處,所以需要我們在進行卸載應用操作的同時,幫用戶清理掉這些(買賣不成仁義在)。而getExternalCacheDir()與getExternalCacheDir()方法可以拿到應用在SD卡中建立的緩存地址。

getExternalFilesDir()方法獲取的路徑是/SDCard/Android/data/你的應用包名/files目錄,一般用來放置需要長時間保存的數據。 

getExternalCacheDir()方法獲取的路徑是/SDCard/Android/data/你的應用包名/cache目錄,一般用來放置臨時緩存數據

 

2、實際代碼

我們知道清除緩存一共分為兩部:

  1. 拿到緩存地址
  2. 執行清除操作

讓我們一個一個給出代碼:

拿到緩存地址

public String getDiskCacheDir(Context context) {  
    String cachePath = null;  
    // 判斷是否有SD卡
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())  
            || !Environment.isExternalStorageRemovable()) {  
        cachePath = context.getExternalCacheDir().getPath();  
    } else {  
        cachePath = context.getCacheDir().getPath();  
    }  
    return cachePath;  
}
 
        

執行清除操作

public static boolean deleteDir(File dir) {
        if (dir == null) return false;
        // 目錄不存在返回true
        if (!dir.exists()) return true;
        // 不是目錄返回false
        if (!dir.isDirectory()) return false;
        // 現在文件存在且是文件夾
        File[] files = dir.listFiles();
        if (files != null && files.length != 0) {
            for (File file : files) {
                if (file.isFile()) {
                    if (!deleteFile(file)) return false;
                } else if (file.isDirectory()) {
                    if (!deleteDir(file)) return false;
                }
            }
        }
        return dir.delete();
    }

當然,這篇里的清除緩存只是一個初步淺層的清理。


版權聲明:本文為CSDN博主「黃元帥」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Xiao_Spring/article/details/77145702


 

1、還是有許多疑問,這里只是區分並記住了這兩對方法。

2、公司項目里只清理了  File appCacheDir = context.getCacheDir();  // /data/data/app_package_name/cache   // 《Android實現清理緩存功能》中清理了getCacheDir()和getExternalCacheDir()

3、對於存儲,這個官方文檔解釋的很好 --> 《數據和文件存儲概覽》

 

未完待續

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM