В некоторых книгах и в Интернете я вижу, как эти вызовы методов делаются после
база данных создана:
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
db.setVersion(DB_VERSION);
Почему это сделано? Насколько я могу сказать, после создания новой базы данных,
система добавляет таблицу с именем android_metadata с одним полем с именем
локаль и эта таблица имеет одну строку с полем локали, установленным в
"En_US". Теперь я предполагаю, что столбец имеет это значение, потому что я использую
Телефон США, и если бы я пользовался телефоном из другого региона,
поле locale будет установлено соответствующим образом. Кто-нибудь может это подтвердить?
Я предполагаю, что метод setLocale будет полезен только в
в случае, если вы устанавливаете предварительно собранную базу данных на телефон, а затем хотите
изменить локаль в соответствии с локалью телефона. Звук верно?
В документации для setLockingEnabled сказано, что по умолчанию установлено значение true, поэтому
нет необходимости делать этот звонок, верно?
Наконец, что с вызовом setVersion? Я не могу найти стол, который
содержит эту информацию, поэтому я предполагал, что файл базы данных
Сам хранит номер версии где-то. Поэтому, когда я создаю
база данных, которая требует, чтобы вы уже указали версию
номер в вызове конструктора SQLiteOpenHelper, нет
точка в вызове setVersion. Опять же, возможно, этот метод существует для
случай установки предварительно собранной базы данных на устройство, и вы хотите
изменить версию базы данных (хотя я не могу думать, когда делаю
это имело бы смысл).
Спасибо за понимание!