繁体   English   中英

如何从Android中的SD卡快速高效地列出具有特定扩展名的所有文件?

[英]How to list all files with a specific extension fast and efficiently from a SD card in android?

我正在尝试构建一个Android应用程序,该应用程序列出SD卡中包含特定扩展名的所有文件。 例如:pdf,mp3,txt等

我尝试使用android MediaStore类的getContentURI方法。

MediaStore.Files.getContentUri("");

但这仅在Honeycomb和更高版本上受支持,而我的应用程序也需要支持姜饼。

我遇到的另一种方法是apache的FileUtils类,其代码如下所示。

File externalContentDirectory=Environment.getExternalStorageDirectory();
String[] extensions = new String[] {"mp3","pdf","txt"};
Collection<File> files=FileUtils.listFiles(externalContentDirectory, extensions,true);

问题在于,在较慢的手机上列出所有文件需要花费太多时间,并且由于该原因应用程序经常崩溃。

是否还有其他特定于Android的方法来列出更快,更有效的文件?

另一个建议是将您在问题中共享的代码放入async task然后从那里通过调用adapter.notifyDataSetChanged()更新列表。 这样,您的应用程序将不会卡死,并且您的用户可以在加载列表时执行其他任务。

请注意:2个async tasks不能并行运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM