我只需要一些验证,这是一种通过使用辅助类在我和我的应用程序之间共享SQLlite
数据库连接的可行方法:Activities
Services
public class DatabaseHelper
{
private static DBItems dbItems;
private static SQLiteDatabase sdbItemsRead, sbItemsWrite;
public static synchronized DBItems getHelper(Context context)
{
if (dbItems == null)
dbItems = new DBItems(context);
return dbItems;
}
public static synchronized SQLiteDatabase select(Context context)
{
if (sdbItemsRead == null)
sdbItemsRead = getHelper(context).getReadableDatabase();
return sdbItemsRead;
}
public static synchronized SQLiteDatabase write(Context context)
{
if (sbItemsWrite == null)
sbItemsWrite = getHelper(context).getWritableDatabase();
return sbItemsWrite;
}
}
在我的代码中,我调用它来选择数据:
DatabaseHelper.select(this).rawQuery("SELECT * FROM TABLE");
这要写入数据:
DatabaseHelper.write(this).update("tbl_items", cv, "[id] = ?", new String[] { itemId.toString() });
我需要这样做,因为我从不同的线程(UI 和后台)调用数据库,并且我收到“数据库被锁定”异常抛出。