文档位于http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html#getWritableDatabase%28%29状态:Databaseupgrademaytakealongtime,youshouldnotcallthismethod[getWritableDatabase]fromtheapplicationmainthread,includingfromContentProvider.onCreate().这引出了一个问题:为了获得最佳实践,应该从哪里调用getWri
我正在创建一个数据库助手类,对于其中的一些方法,我只查询数据库,而我正在向它写入其他方法。我的理解是这两种方法都会打开数据库,让程序要么读取要么写入数据库。对于查询语句,是否值得仅使用getReadableDatabase()或者这两种方法之间的性能差异很小。感谢您的宝贵时间。 最佳答案 它们返回相同的对象,除非磁盘已满或存在强制以只读模式打开数据库的权限错误。这个名字有点困惑:)根据经验,您应该在UI线程之外对这些方法进行任何调用。两者都可能需要很长时间才能返回。如果您不打算编写数据库,请使用getReadableDatabase
我正在创建一个数据库助手类,对于其中的一些方法,我只查询数据库,而我正在向它写入其他方法。我的理解是这两种方法都会打开数据库,让程序要么读取要么写入数据库。对于查询语句,是否值得仅使用getReadableDatabase()或者这两种方法之间的性能差异很小。感谢您的宝贵时间。 最佳答案 它们返回相同的对象,除非磁盘已满或存在强制以只读模式打开数据库的权限错误。这个名字有点困惑:)根据经验,您应该在UI线程之外对这些方法进行任何调用。两者都可能需要很长时间才能返回。如果您不打算编写数据库,请使用getReadableDatabase
我正在尝试使用以下代码更新我的数据库表:publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){Stringquery="ALTERTABLEnamesADDCOLUMNhiddenintegerdefault0";dbHelper.getWritableDatabase().rawQuery(query,null);}但是,当我启动应用程序并尝试升级数据库时,出现以下异常:...Causedby:java.lang.IllegalStateException:getWritableDatabasecalled
我正在我的android应用程序中编写一个数据库,但我的表没有被创建。我在我的onCreate方法中添加了断点,我的getWriteableDatabase和getWritableDatabase被调用,但onCreate没有被调用。packagecom.fslade.app;importandroid.content.Context;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;publicclassD