让我们说我有一个应用程序,允许我评价马克杯。因此,我输入一些评级标准,拍摄一个杯子的图片,然后将其保存到数据库,以便稍后查看。
目前,我将图片保存在获得的路径上
getExternalFilesDir(Environment.DIRECTORY_PICTURES)
并保存我的SQLite数据库的路径以便稍后查看。
然而,这很好,因为我整天评价一堆杯子并经常改变我的手机安静,我希望能够通过常见的Android备份解决方案备份我的应用程序及其数据。这适用于保存数据的SQLite数据库,并存储在App-Context中。
但由于数据库只保存了拍摄图片的路径(由getExternalFilesDir返回),因此图片不会备份。我在哪里可以保存图片,以确保任何常见的Android备份软件也会拍照?
将备份放在新手机上后,是否可以确保存储在数据库中的路径相同?由于应用程序可能位于新手机的其他位置,绝对路径在这里不是一个好主意......是否可以相对于应用程序保存图片并保存相对路径?
正如greenapps所建议的,一种可能的解决方案是仅保存数据库中图像的相对路径。而不是使用
getExternalFilesDir(Environment.DIRECTORY_PICTURES)
我现在用
getFilesDir()
获取应用程序实习文件夹并在那里保存图像。当我想加载图片时,我使用相同的方法构建路径以获取应用程序目录和数据库中保存的相对路径。