Java 有没有办法在android中刷新SQLite数据库文件中的更改?

Java 有没有办法在android中刷新SQLite数据库文件中的更改?,java,android,android-sqlite,Java,Android,Android Sqlite,我已经创建了一个非常大的应用程序,它使用了很多SQLite读/写功能。由于我无法轻松地在手机中查看数据库,我在应用程序中具有备份功能,可以将db文件上传到服务器(用于开发我的本地计算机) 起初,我在服务器和手机上都有初始数据库状态。然后我在电话数据库中做了一些更改(添加了一些内容)。当我列出数据时,我可以看到列出的新内容 然后我想备份数据库-在运行备份之前我已经记录了所有内容-数据库文件从何处获取(它是/data/user/0/APPLICATION\u PACKAGE/databases/da

我已经创建了一个非常大的应用程序,它使用了很多SQLite读/写功能。由于我无法轻松地在手机中查看数据库,我在应用程序中具有备份功能,可以将db文件上传到服务器(用于开发我的本地计算机)

起初,我在服务器和手机上都有初始数据库状态。然后我在电话数据库中做了一些更改(添加了一些内容)。当我列出数据时,我可以看到列出的新内容

然后我想备份数据库-在运行备份之前我已经记录了所有内容-数据库文件从何处获取(它是/data/user/0/APPLICATION\u PACKAGE/databases/database\u FILENAME)。我还删除了服务器上的所有文件。备份完成后,我检查了服务器上的新db文件-文件大小(以字节为单位)匹配,但文件中没有任何更改

我说好吧,也许,不知怎么的,它没有被冲红。我已经关闭了应用程序,再次运行,列出数据以查看是否有更改(以及是否有更改),再次运行备份,并在检查服务器上的新数据库文件时,再次无更改

这怎么可能?有没有办法将更改刷新到db文件中,以便我可以定期备份它?

很可能启用了wal(预写日志记录)模式。要禁用它,您需要执行以下操作:

public class MyDbHelper extends SQLiteOpenHelper {

    //...

    @Override
    public void onOpen(SQLiteDatabase db) {
        db.disableWriteAheadLogging();
        super.onOpen(db);
    }

    //...
}

最有可能启用wal(预写日志记录)模式。要禁用它,您需要执行以下操作:

public class MyDbHelper extends SQLiteOpenHelper {

    //...

    @Override
    public void onOpen(SQLiteDatabase db) {
        db.disableWriteAheadLogging();
        super.onOpen(db);
    }

    //...
}

谢谢!谢谢谢谢你!。。。我花了两天时间来看看我错过了什么,或者检查我是不是疯了,还是生活在暮色地带:)你救了我一年,不是一天:)谢谢!谢谢谢谢你!。。。我花了两天时间来看看我错过了什么,或者检查我是不是疯了,还是生活在暮色地带:)你救了我一年,而不是一天:)