【发布时间】:2010-04-01 17:51:17
【问题描述】:
在一些书籍和在线我看到这些方法调用是在 数据库已创建:
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
db.setVersion(DB_VERSION);
为什么要这样做?据我所知,在创建新数据库后, 系统添加了一个名为 android_metadata 的表,其中一个字段名为 语言环境,并且该表有一行的语言环境字段设置为 “en_US”。现在我假设该列具有该值,因为我使用的是 美国电话,如果我使用的是其他地区的电话,那么 locale 字段将被适当地设置。谁能证实这一点? 我猜 setLocale 方法只会在 如果您将预先构建的数据库安装到手机上,然后想要 更改区域设置以匹配手机的区域设置。听起来对吗?
setLockingEnabled 的文档说它默认为 true,所以 没必要打那个电话吧?
最后,调用 setVersion 是怎么回事?我找不到这样的表 包含此信息,所以我一直假设数据库文件 本身将版本号存储在某处。所以当我创建一个 数据库,这要求您已经指定了版本 调用 SQLiteOpenHelper 构造函数中的数字,没有 指向调用 setVersion。同样,也许这种方法存在于 将预建数据库安装到设备的情况,然后您希望 更改数据库的版本(虽然我想不出什么时候做 这是有道理的)。
感谢您的任何见解!
【问题讨论】: