Gle*_*ten 7 database sqlite android
在一些书籍和在线中,我看到在创建数据库之后进行的这些方法调用:
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
db.setVersion(DB_VERSION);
Run Code Online (Sandbox Code Playgroud)
为什么这样做?据我所知,在创建一个新数据库之后,系统会添加一个名为android_metadata的表,其中一个字段名为locale,该表有一行,其中locale字段设置为"en_US".现在我假设该列具有该值,因为我使用的是美国手机,如果我使用的是来自其他地区的手机,那么将适当地设置区域设置字段.谁能证实这一点?我猜测setLocale方法仅在您将预先构建的数据库安装到手机上然后想要更改区域设置以匹配手机的区域设置时才有用.听起来不对?
setLockingEnabled的文档说它默认为true所以不需要进行那次调用,对吧?
最后,调用setVersion是什么?我找不到包含此信息的表,所以我一直假设数据库文件本身在某处存储了版本号.因此,当我创建一个数据库时,要求您已经在调用SQLiteOpenHelper构造函数时指定了版本号,那么调用setVersion是没有意义的.同样,也许这种方法适用于将预先构建的数据库安装到设备的情况,然后您希望更改数据库的版本(尽管我无法想到何时这样做有意义).
感谢您的任何见解!
当您有不同语言的某些内容并且您想要进行自定义排序时,您可以使用 setLocale() 。Android SDK 允许您使用以下方式调用订单
select........ order by display_name COLLATE LOCALIZED ASC
Run Code Online (Sandbox Code Playgroud)
这里的重点是COLLATE LOCALIZED. 这将使用区域设置字母对列进行排序。
| 归档时间: |
|
| 查看次数: |
4685 次 |
| 最近记录: |