Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的长任务快速执行_Android_Multithreading_Arraylist_Android Asynctask - Fatal编程技术网

android中的长任务快速执行

android中的长任务快速执行,android,multithreading,arraylist,android-asynctask,Android,Multithreading,Arraylist,Android Asynctask,我正在开发一个android图像库视图应用程序。因此,我运行一个for循环,如下所示,以获取所有jpeg、jpg和png文件的uri字符串的ArrayList。因此,在执行这个过程中,大约需要50-60秒。(此for循环正在AsyncTask上运行)。有什么办法能让我更快地完成任务吗 //我正在将Environment.getExternalStorageDirectory()传递给此函数 public void fileextractor(File raw){ File[] f

我正在开发一个android图像库视图应用程序。因此,我运行一个for循环,如下所示,以获取所有jpeg、jpg和png文件的uri字符串的ArrayList。因此,在执行这个过程中,大约需要50-60秒。(此for循环正在AsyncTask上运行)。有什么办法能让我更快地完成任务吗

//我正在将Environment.getExternalStorageDirectory()传递给此函数

    public void fileextractor(File raw){
    File[] files = raw.listFiles();
    for(int i=0; i<files.length;i++){

        if(files[i].isDirectory()){fileextractor(files[i]);}
        else {
            IMGS[imageCounter] = (Uri.fromFile(files[i]).toString());
            //IMGS is String[];
            imageCounter++;

        }
    }

}
public void文件提取器(文件原始){
File[]files=raw.listFiles();

对于(int i=0;i使用列表文件(FileFilter)会更快一点,它会减少所需的分配数量。但真正的答案是你不需要这样做,MediaScanner会为你做。你只需要查询内容解析程序。感谢你的解决方案…这非常有帮助。在这个解决方案之后,我现在陷入了困境。请帮助我克服这个问题。