在一些书和网上我看到的是创建 数据库之后,这些方法调用正在取得:Android的SQLite数据库语言环境,锁定和版本
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
db.setVersion(DB_VERSION);
这是为什么呢?据我所知,在创建新数据库后,系统添加一个名为android_metadata的表,其中一个字段名为 区域设置,该表有一行,区域设置字段设置为 “en_US”。现在我假设该列具有该值,因为我使用的是美国电话 ,如果我使用的是来自不同地区的电话,则 区域设置字段将被适当设置。任何人都可以确认吗? 我猜测setLocale方法只会在 的情况下有用,您可以在电话上安装预建数据库,然后想要 更改区域设置以匹配电话的区域设置。听起来对吗?
setLockingEnabled的文档说它默认为true,所以 没有必要进行该调用,对吧?
最后,setVersion的调用是什么?我无法找到 包含此信息的表格,因此我一直假定数据库文件 本身在某处存储版本号。因此,当我创建一个 数据库时,需要您在调用SQLiteOpenHelper构造函数时已指定版本号 ,则调用setVersion时没有 点。再说一次,也许这种方法存在于为设备安装预构建数据库的情况下,然后您希望 更改数据库的版本(尽管我想不出什么时候做 这是有道理的)。
感谢您的任何见解!
我得到了语言环境的工作原理。我只是不明白为什么我会在书籍和在线文章中看到讨论在Android上使用SQLite数据库的内容。这就像作者都在做相同的代码样本的剪切和粘贴,而不知道它的实际必要与否!据我所知,代码是没有必要的,只是想验证。 – gdoten 2010-04-14 15:18:07
假设你有一个数据库持有重音文本,确保你需要正确的顺序来获得正确的结果,例如:'as,állat,dig,egg,éden,ivory,work'否则最终会得到那些重音的东西 – Pentium10 2010-04-14 18:49:13
是的。但是新创建的数据库已经有了locale集合,那么为什么你会去打电话来将locale设置为已经设置的?与锁定和版本调用一样 - 数据库已经设置了这些,所以这些调用没有意义。 – gdoten 2010-04-15 18:59:03