我已阅读this和this文章,但我不确定从我的应用中存储图像数据的最佳位置。
我的应用包含产品数据库,在查看产品时,该产品的图像是从服务器下载的,需要存储在本地。
大多数建议似乎都是使用Environment.getExternalStorageDirectory()
,但很少有帖子似乎推荐context.getExternalFilesDir()
- 尽管它可能更适合多种类型的应用(并且自KitKat以来不需要显式权限)。< / p>
无论如何,这两种外部存储解决方案的问题在于它们通常需要android.permission.WRITE_EXTERNAL_STORAGE
权限 - 这可能会使我的许多潜在用户失望。
所以我今天发现context.getFilesDir()
用于内部存储 - 似乎 非常适合我的应用程序,因为它似乎不需要明确的权限,如果用户卸载我的应用程序然后所有内容将被清理(加上,我的应用程序存储的内容将不会公开显示 - 我认为这是奖金)。
前面提到的Android文档没有警告不要使用context.getFilesDir()
,所以我想知道它的缺点是什么?使用下载的数据堵塞内部存储是我能想到的唯一一个 - 但如果是大多数应用程序正在写入外部存储的情况,那么如果我的应用程序也编写外部存储,那么就不会更容易堵塞事物吗?
因此,总而言之,我想将下载的图像存储在设备上,确实希望避免添加清单权限,希望其他应用程序无法访问我的数据,但希望以“正确”的方式解决这个问题 - 所以使用内部存储/ context.getFilesDir()
符合条件还是我错过了什么?