我在Android上搜索有關SQLite的信息,並閱讀了一些關於Android編程的書籍的一些章節,但我不知道如何真正在Android上使用SQLite。在Android上正確使用Sqlite(SQLiteOpenHelper,連接,主線程等...)
我正在開發一個具有Activities,Services和BroadcastReceivers的應用程序,並且它們都必須讀取和寫入數據庫中的數據。所以我有一些問題:
- 哪裏是創建
SQLiteOpenHelper
實例的最佳位置?我讀過這個,看來最好的方法是隻有SQLiteOpenHelper
所有的應用程序。 - 何時以及何地需要通過調用
dbHelper.getReadableDatabase()
(或)得到SQLiteDatabase
對象?我需要在每個查詢上完成它,每次查詢後關閉它? - 我讀過,我不應該在主線程中執行數據庫操作,所以我爲每個數據庫操作創建一個異步任務,我在一個Activity中執行,這是最好的方法嗎?
感謝您的反對票¬¬ – 2013-04-04 10:48:46
創建SQLiteOpenHelper實例的最佳位置在'ContentProvider'的'onCreate'方法中......使用'getWritableDatabase()'的最佳位置在'delete' /''在'query'中插入'ContentProvider'和'getReadableDatabase()'的''''update'方法......你不需要關閉這些數據庫......爲了避免在UI上使用數據庫操作,你可以使用'Loaders'與CP ...我知道,寫CP是痛苦的**,但與寫得很好的CP你避免了很多問題(如從多個theread訪問數據庫) – Selvin 2013-04-04 10:50:30
謝謝Selvin。我想在不使用ContentProvider的情況下使用SQLite,因爲我不需要與其他應用程序共享任何數據。我認爲我不需要我的應用程序中的內容提供者:http://touchlabblog.tumblr.com/post/32793099735/training-sqlite#_=_。如果不使用ContentProvider,沒有辦法正確使用SQLite嗎? – 2013-04-04 10:55:32