之前公司项目需要实现读取本地apk缓存和清除apk缓存的功能,果断百度之后就加到项目中,在三星 note,galaxy 华为 等等基本没有问题。但是在小米手机测试时当本地有缓存时 可以清除成功,当本地缓存为0,或者已经清除一次之后再次点击清除程序就会崩溃,查看日志报空指针错误。 想了半天没有找到好的避免办法,最后想到了抛异常,改进代码如下。目前测试没有任何问题。
首先贴上关键代码
//利用递归读取所以文件夹下的文件
public static long getFileSize(File f) // 取得文件夹大小
{
long size = 0;
try {
if(f.listFiles()!=null){
File flist[] = f.listFiles();
for (int i = 0; i <