0

在我的应用程序中,我以两种方式访问​​我的 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;
}
4

0 回答 0