日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android代码打开数据库,Android打开和关闭数据库

發(fā)布時間:2023/12/10 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android代码打开数据库,Android打开和关闭数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

與計算機(jī)編程中的許多事情一樣,關(guān)閉SQLite數(shù)據(jù)庫的時間沒有單一的“正確進(jìn)行”(如果您正在使用它,則通過SQLiteOpenHelper上的close(),否則對SQLiteDatabase執(zhí)行close()).

一個相當(dāng)硬的規(guī)則是不要同時跨多個線程為同一個數(shù)據(jù)庫使用多個SQLiteDatabase對象.這可能會讓你遇到麻煩,除非你正在進(jìn)行自己的線程同步.如果您堅持每個數(shù)據(jù)庫使用一個SQLiteDatabase對象,則在SQLiteDatabase中處理線程同步.

由于one-database-for-all-threads規(guī)則,并且因為在許多不同的組件中跟蹤何時線程可能或可能不想要數(shù)據(jù)庫可能會很棘手,一些開發(fā)人員采用單一數(shù)據(jù)庫管理器的方法,懶惰打開數(shù)據(jù)庫……永遠(yuǎn)不會關(guān)閉它.例如,數(shù)據(jù)庫支持的ContentProvider使用此模式,因為ContentProvider永遠(yuǎn)不會被銷毀,因此沒有明確的時間關(guān)閉數(shù)據(jù)庫.

就個人而言,我會通過開放式使用 – 關(guān)閉方法走這條路線,特別是如果你使用SQLCipher for Android(加密的SQLite替代品).但是,如果您確定一次只有一個線程可以使用數(shù)據(jù)庫,那么open-use-close方法沒有什么特別的錯誤.

如果只有一個組件使用數(shù)據(jù)庫,則觸發(fā)在onCreate()中打開數(shù)據(jù)庫并在onDestroy()中關(guān)閉它沒有任何問題.畢竟,如果這是唯一需要數(shù)據(jù)庫的組件,那么當(dāng)組件本身消失時,您不需要數(shù)據(jù)庫.

Close your db in onDestroy() Comments: “OnDestroy() does not get called always! Use onStop()!” –> So onStart() has to open it.

如果未在組件上調(diào)用onDestroy(),則表明您在該組件中遇到未處理的異常,或者您的進(jìn)程已終止.后一種情況不是問題(同樣,這是ContentProvider的工作方式,因為提供程序永遠(yuǎn)不會被銷毀).前一種情況應(yīng)該不是問題,只要您不會在多個線程中意外地同時使用舊的SQLiteDatabase和一些較新的SQLiteDatabase.

The db works efficiently. No need to close it.

這不是效率問題. SQLite是事務(wù)性的.無法關(guān)閉數(shù)據(jù)庫不是問題,因為沒有未刷新的緩沖區(qū)或您必須擔(dān)心的事情.

Open your db once and create a field and an accessor.

這與關(guān)閉數(shù)據(jù)庫時沒有任何關(guān)系.

Close after use.

這是一種模式,并且正確完成它可以工作.

總結(jié)

以上是生活随笔為你收集整理的android代码打开数据库,Android打开和关闭数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。