在我的应用程序中,我以两种方式访问我的 sqlite 数据库。一个来自从服务器获取数据并更新数据库的服务。和两个还有其他方法可以读取数据并将其显示给用户。发生的情况是,当我更新数据库时,当我关闭应用程序并再次打开它时,数据消失了,表是空的?!?!我在启动应用程序时打开数据库并在 onDestroy() 中关闭(如果我这样做)。
public boolean updateTopic( final String oldTopicID, final Topic newTopic )
{
if( newTopic == null )
return false;
boolean result = false;
result = super.write( new DatabaseWriteRequest<Boolean>()
{
@Override
public Boolean requestImplementation( SQLiteDatabase database )
{
int result = database.update( TABLE_NAME, getContentValues( newTopic ), COLUMN_ID + " = ?", new String[] { oldTopicID } );
if( result == 0 )
{
return false;
}
return true;
}
} );
return result;
}
在超级班:
protected synchronized < T > T write( DatabaseWriteRequest<T> writeRequest )
{
if( writeRequest == null )
return null;
T result = null;
SQLiteDatabase database = DatabaseHolder.getDatabase();
if( database != null )
result = writeRequest.requestImplementation( database );
return result;
}