我在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