第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我需要在設(shè)置 this.getReadableDatabase() 后關(guān)閉數(shù)據(jù)庫?

為什么我需要在設(shè)置 this.getReadableDatabase() 后關(guān)閉數(shù)據(jù)庫?

鴻蒙傳說 2022-12-28 11:05:09
我遇到了與以下鏈接中的用戶相同的問題。他提到僅在特定的安卓設(shè)備上創(chuàng)建一個空數(shù)據(jù)庫(對我來說,它是像素,對他來說,是不同的安卓手機(jī))。但是,在大多數(shù) Android 手機(jī)上,代碼中的當(dāng)前行為有效。發(fā)布了一個解決方案,其中有人提到要在解決問題db.close()后添加。this.getReadableDatabase()但是,我不確定為什么會修復(fù)它以及為什么該行為僅適用于某些 Android 設(shè)備?這是鏈接: http ://www.anddev.org/networking-database-problems-f29/missing-table-in-sqlite-with-specific-version-of-desire-hd-t50364.html
查看完整描述

2 回答

?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗 獲得超4個贊

簡而言之,如果您使用正確的技術(shù),但如果您使用歷史上經(jīng)常使用的方法,則不需要,如下所示,那么您必須這樣做,因為:-

this.getReadableDatabase()使用/已經(jīng)使用的原因是在 data/data/the_package/ 目錄中創(chuàng)建數(shù)據(jù)庫文件夾/目錄。如果數(shù)據(jù)庫目錄不存在,則來自資產(chǎn)的典型副本將失敗并出現(xiàn) ENOENT 錯誤。

SQLite 默認(rèn)使用日志模式日志記錄,這不是問題,因此歷史上 using的繞過方法this.getReadableDatabase()一直有效。

但是,在 Android Pie (28) 中,SDK 已更改為默認(rèn)使用預(yù)寫日志記錄 (WAL),這是一種較晚且更高級的日志記錄方法。此方法使用兩個已改進(jìn)安全措施的文件。一個是文件被標(biāo)記/標(biāo)記為屬于創(chuàng)建它們的數(shù)據(jù)庫。

因此,當(dāng)使用沒有關(guān)閉的舊方法復(fù)制數(shù)據(jù)庫時,這兩個文件(數(shù)據(jù)庫文件以 -wal 和 -shm 為后綴)存在并且很可能包含日志記錄數(shù)據(jù)(例如任何表的創(chuàng)建)。但是,它們不會被標(biāo)記為用于復(fù)制的數(shù)據(jù)庫,因此(我相信)重新創(chuàng)建數(shù)據(jù)庫(因為復(fù)制的數(shù)據(jù)庫由于數(shù)據(jù)庫與 -shm 和 -wal 文件不匹配而無法打開)因此隨后的表未找到通常會遇到的錯誤。

使用 WAL 關(guān)閉數(shù)據(jù)庫/連接會導(dǎo)致數(shù)據(jù)被提交,因此為什么在this.getReadableDatabase()工作后(立即)關(guān)閉數(shù)據(jù)庫。

但是,正確的解決方法是使用 File 方法檢查并創(chuàng)建數(shù)據(jù)庫目錄(如果它不存在)。這樣就不需要打開數(shù)據(jù)庫,這會浪費(fèi)資源,也不需要關(guān)閉數(shù)據(jù)庫,這也會浪費(fèi)資源(即實際執(zhí)行記錄的操作并將數(shù)據(jù)寫入磁盤和 -wal 和-shm 文件也被讀取和重寫)。


查看完整回答
反對 回復(fù) 2022-12-28
?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗 獲得超7個贊

我認(rèn)為這個問題是由于每個 Android 版本都帶來了不同的 SQLite 版本,并且一些供應(yīng)商也自定義了 SQLite 庫版本。正如您可以從此鏈接中閱讀的那樣:


Android API SQLite Version

API 27  3.19

API 26  3.18

API 24  3.9

API 21  3.8

API 11  3.7

API 8   3.6

API 3   3.5

API 1   3.4

希望能幫助到你。


查看完整回答
反對 回復(fù) 2022-12-28
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號