首页 > 解决方案 > 按大小排序文件列表花费了太多时间

问题描述

文件夹的排序列表运行良好,但需要花费太多时间并且使手机冻结,直到方法完成。这是我用来对文件列表进行排序的方法

public static void sortFromLargeToSmall(List<Folders> foldersList, SDCardListViewAdapter sdCardListViewAdapter) {
    List<File> files = new ArrayList<>();
    for (Folders folder: foldersList)
        files.add(folder.getFile());
    Comparator<File> sizeFileComparator = SizeFileComparator.SIZE_SUMDIR_REVERSE;
    Collections.sort(files, sizeFileComparator);
    sdCardListViewAdapter.clear();
    for(File file: files)
        if(file.isDirectory())
            sdCardListViewAdapter.add(new Folders(R.drawable.ic_folders, file.getName(), file));
        else
            sdCardListViewAdapter.add(new Folders(R.drawable.ic_file, file.getName(), file));
}

这是文件夹对象构造函数

public Folders(int imageView, String folderName, File file) {
    this.folderIcon = imageView;
    this.folderName = folderName;
    this.file = file;
    this.isSelected = false;
    foldersPath = new ArrayList<>();
    foldersName = new ArrayList<>();
}

有没有办法让方法非常快速并且不会让手机死机

标签: javaandroidsorting

解决方案


推荐阅读