android - 递归使资源管理器变慢

标签 android recursion

这段检查 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/

相关文章:

Javascript - 嵌套的父/子数组递归函数,仅展平父级

python - 二叉搜索树中三种类型节点的计数(递归)

android - 如何在运行时修改xml中的颜色属性?

android - 如何使用 Eclipse 逐行调试 Android 应用程序?

javascript - 如何通过回溯递归地修改数组元素?

算法设计技术

powershell - 使用 Powershell 获取所有 AD 用户的递归组成员身份

java - 将毫秒转换为日期返回 1970 作为年份

android - Android Studio 3.0 中的 AndroidManifest.xml 问题

Android如何在扩展 fragment 的类中将json解析为listtview