android中的长任务快速执行
我正在开发一个android图像库视图应用程序。因此,我运行一个for循环,如下所示,以获取所有jpeg、jpg和png文件的uri字符串的ArrayList。因此,在执行这个过程中,大约需要50-60秒。(此for循环正在AsyncTask上运行)。有什么办法能让我更快地完成任务吗 //我正在将Environment.getExternalStorageDirectory()传递给此函数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
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会为你做。你只需要查询内容解析程序。感谢你的解决方案…这非常有帮助。在这个解决方案之后,我现在陷入了困境。请帮助我克服这个问题。