在SDCard中存储文件会花费很长时间,但如果我将文件存储在内部存储器中,则花费的时间会更少。
我的代码:
public File getTileViewImageDirectory() {
// check SDCard if available or not, if available store in SDCard
// else store in internal storage
if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) && !android.os.Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED_READ_ONLY)) {
File[] dirs = ContextCompat.getExternalFilesDirs(context, null);
File directory = new File(dirs[dirs.length > 1 ? 1 : 0].getParentFile().getAbsolutePath() + AppConstants.TILEVIEW_IMAGE_LOCATION);
return directory;
} else {
return new File(context.getFilesDir().getAbsolutePath() + AppConstants.TILEVIEW_IMAGE_LOCATION);
}
}注意:如果SDCard不可用,则会将其存储在内部存储器中。
当使用内部存储时,它很快( 30秒以下),但在外部存储中,它需要更长的时间(超过1分钟)。
如何减少使用外部存储的时间?
发布于 2016-03-30 03:56:34
直接保存到SD卡总是比较慢。提高速度的唯一方法是使用/购买high speed SD card。
另外,看看你的代码,我应该警告你,从Android4.4和更高版本开始,SD卡不再能通过常见的File API访问。您将需要改用新的Storage Access Frameork。
还要考虑到,在Android Q和更高版本中,SAF已被强制作为访问SD卡的唯一方式,因此对于这些版本没有变通或黑客。
https://stackoverflow.com/questions/36257073
复制相似问题