在一些書和網上我看到的是創建 數據庫之後,這些方法調用正在取得: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