我正在使用Ormlite来保存我的
Android应用程序中的一些数据(在Motorola Xoom上运行).默认情况下,sql数据库保存到/ data / data / [package name] / databases / [dbname] .db.麻烦的是,Xoom没有root,因此用户无权访问保存db的目录(无法复制/备份/编辑db的内容).
我已经在其中一个类中添加了一些额外的代码来将数据库从/ data复制到sd卡,这很好,但实际上我认为应该可以设置数据库存储位置的路径.我错过了什么,或者Ormlite不可能这样做?
提前致谢,
C
解决方法
如果您使用类似的东西,可以在SDCard上创建数据库
public class DatabaseHelper extends OrmLitesqliteOpenHelper { [...] public DatabaseHelper(final Context context) { super(context,Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + DATABASE_NAME,null,DATABASE_VERSION); }
这样就可以创建db文件. /mnt/sdcard/Android/data/com.your.app/files/myData.sqlite
Pro:保存内存
Con:当SDCard不可用时无法访问数据库(例如,当它连接到PC时)
此外,任何可能是赞成或反对的人都可以阅读.
使用context.getExternalFilesDir()而不是Environment.getExternalStorageDirectory()将使用特定于您的应用的位置,并在卸载后自动清理(并且在应用更新时也显示在2.2上).
附:我在某处看到这种方法可能不适用于2.2之前的Android版本(?)