package com.example.imgcache; import android.os.Bundle; import android.os.Looper; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory; import com.exbawei.liteli.myrecyclerview.R; import java.io.File; import java.math.BigDecimal; public class MainActivity extends AppCompatActivity { Button clean,siz; String formatSize; String old; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); clean = (Button) findViewById(R.id.clean); siz = (Button) findViewById(R.id.siz); try { formatSize= getFormatSize(getFolderSize(new File(MainActivity.this.getCacheDir() + "/" + InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR))); siz.setText(formatSize); } catch (Exception e) { e.printStackTrace(); } clean.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { try { if (Looper.myLooper() == Looper.getMainLooper()) { new Thread(new Runnable() { @Override public void run() { Glide.get(MainActivity.this).clearDiskCache(); // BusUtil.getBus().post(new GlideCacheClearSuccessEvent()); try { old= getFormatSize(getFolderSize(new File(MainActivity.this.getCacheDir() + "/" + InternalCacheDiskCacheFactory.DEFAULT_DISK_CACHE_DIR))); } catch (Exception e) { e.printStackTrace(); } } }).start(); } else { Glide.get(MainActivity.this).clearDiskCache(); } siz.setText(old); } catch (Exception e) { e.printStackTrace(); } } }); } private long getFolderSize(File file) throws Exception { long size = 0; try { File[] fileList = file.listFiles(); for (File aFileList : fileList) { if (aFileList.isDirectory()) { size = size + getFolderSize(aFileList); } else { size = size + aFileList.length(); } } } catch (Exception e) { e.printStackTrace(); } return size; } private static String getFormatSize(double size) { double kiloByte = size / 1024; if (kiloByte < 1) { return size + "Byte"; } double megaByte = kiloByte / 1024; if (megaByte < 1) { BigDecimal result1 = new BigDecimal(Double.toString(kiloByte)); return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB"; } double gigaByte = megaByte / 1024; if (gigaByte < 1) { BigDecimal result2 = new BigDecimal(Double.toString(megaByte)); return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB"; } double teraBytes = gigaByte / 1024; if (teraBytes < 1) { BigDecimal result3 = new BigDecimal(Double.toString(gigaByte)); return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB"; } BigDecimal result4 = new BigDecimal(teraBytes); return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB"; } }
清除缓存
最新推荐文章于 2020-12-02 22:51:14 发布