我的应用程序使用了大量从 Internet 下载并缓存在 Android 手机本地的图片。我想知道,保存这些图片的正确方法是什么。我看到有几种方式并不完全令人满意。
将它们保存在公共(public)文件夹中的 SD 卡上
- 使用卸载时无法释放的空间
- 用户可以在图库中查看图片
- 需要 sdcard 根目录下的文件夹(您实际上可以在浏览手机时看到它)
将它们保存在 SD 卡上的非公共(public)文件夹中
- 使用卸载时无法释放的空间
- 偷偷使用 SD 卡上的空间
将它们保存在应用程序中
- 过度扩大应用程序大小
在本地保存我的应用程序的图像以不分散用户注意力并且不会在任何地方留下垃圾的正确方法是什么?
最佳答案
您最好的解决方案是使用:
context.getCacheDir()
这个目录是应用程序私有(private)的,卸载时会被删除,此外,如果设备空间不足,系统可以从这个目录中删除。
请注意,尽管文档说:
you should not rely on the system deleting these files for you; you should always have a reasonable maximum, such as 1 MB, for the amount of space you consume with cache files, and prune those files when exceeding that space
如果您需要大量空间并且宁愿使用 SD 卡可以调用
getExternalCacheDir()
相反。这些文件也会在卸载时被删除,但系统不会监控外部存储中的可用空间,因此如果空间不足,不会自动删除这些文件。如果使用此选项,您还应该检查外部存储是否可用
Environment.getExternalStorageState()
在尝试写入之前。
关于java - Android上的图片保存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847664/