public List<String> files = new ArrayList<String>();//扫描文件结果集
public static Boolean isEnd = false;//判断扫描是否结束
public static Integer total = 0;//已扫描文件总数
public static Integer num = 0;//已识别文件数
private String fullPath = "/home";//扫描文件路径
/**
* 方法说明:搜索文件
* 方法名:searchFiles
* @param dir
* 返回值:void
*/
private void searchFiles(File dir) {
if(!isEnd) {
File[] allfiles = dir.listFiles();
if(allfiles != null && allfiles.length > 0) {
for (int i = 0; i < allfiles.length; i++) {
File file = allfiles[i];
if(file.isDirectory()) {
searchFiles(file);
} else {
Log.e("TAG", "searchFiles: "+file.getAbsolutePath() );
total++;
if(isEnd) {
break;
}
if(FileType.isCheckFile(file)) {
files.add(file.getAbsolutePath());
}
}
if(i%7 == 0) {
System.gc();
}
}
}
}
}
别扯华为还是小米,直接报Android版本号,Android新版本的对外置存储的读写做了严格的限制,所以MIUI新版本可能是新版本的Android系统,而华为由于众所周知的原因还是旧版本的,所以才可能出现这个问题。
我以前用安卓10系统的手机中,华为手机经常出现一些问题,你的怎么相反了
检查一下
if(!isEnd){
...代码省略
//最后,遍历完成后,重新设定isEnd默认值
isEnd= false
}