[英]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.