这段检查 mp3 歌曲的代码(使用递归)使我的资源管理器非常慢 请建议我一种让它更快的方法
public static boolean getMp3s1(File dir){
int h=0;
File[] listFile = dir.listFiles();
if(listFile!=null)
for( int i=0; i< listFile.length; i++)
{
if(listFile[i].isDirectory()==true)
getMp3s1(listFile[i]);
else
{
if(listFile[i].getName().endsWith(".mp3")==true||listFile[i].getName().endsWith(".MP3")==true)
h=1;
}
}
if(h==1){
h=0;
return true;
}
else
return false;
}
最佳答案
尝试在 h=1 之后打破你的循环;它可以加快一点。 像下面这样:
public static boolean getMp3s1(File dir){
int h=0;
File[] listFile = dir.listFiles();
if(listFile!=null)
for( int i=0; i< listFile.length; i++)
{
if(listFile[i].isDirectory()==true)
getMp3s1(listFile[i]);
else
{
if(listFile[i].getName().endsWith(".mp3")==true||listFile[i].getName().endsWith(".MP3")==true)
{
h=1;
break;
}
}
}
if(h==1){
h=0;
return true;
}
else
return false;
}
编辑: 正如我从您的代码逻辑中看到的那样,您似乎可以跳过 getMp3s1(listFile[i]);也是。
关于android - 递归使资源管理器变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830612/