Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在第二次插入到电话磁盘上的数据库后,房间停止插入_Java_Android_Sqlite_Android Room - Fatal编程技术网

Java 在第二次插入到电话磁盘上的数据库后,房间停止插入

Java 在第二次插入到电话磁盘上的数据库后,房间停止插入,java,android,sqlite,android-room,Java,Android,Sqlite,Android Room,每当我向数据库中插入内容时,前两次插入都会通过并保存在磁盘中。通过使用Android调试数据库,我可以检查插入的行,并查看它是否成功 第三个插件总是卡在那里。无论以后插入多少次,它们都不会保存在磁盘中。直到我重新启动应用程序并再次运行时,它才会重新启动并在第二次插入后停止插入。实际上,我用各种可能的方法调试了我的应用程序。每次有效载荷都是正确的。事实上,插入是成功的。如果我运行一个查询并获取SELECT*行,它将返回三个INSERT。全部三个。但是,在磁盘中,它仍然只显示两个插入。如果重新启动应

每当我向数据库中插入内容时,前两次插入都会通过并保存在磁盘中。通过使用Android调试数据库,我可以检查插入的行,并查看它是否成功

第三个插件总是卡在那里。无论以后插入多少次,它们都不会保存在磁盘中。直到我重新启动应用程序并再次运行时,它才会重新启动并在第二次插入后停止插入。实际上,我用各种可能的方法调试了我的应用程序。每次有效载荷都是正确的。事实上,插入是成功的。如果我运行一个查询并获取SELECT*行,它将返回三个INSERT。全部三个。但是,在磁盘中,它仍然只显示两个插入。如果重新启动应用程序并再次运行查询并获取SELECT*行,则返回到两行

这个问题似乎在某个较低的层次上持续存在,因为我的代码是正确的。这也是我没有把它贴在这里的原因。相信我,它已经检查过多次了


我只需要回答,为什么在第二次插入后,它会停止将缓存中的数据传输到手机磁盘上的数据库

我猜你的问题在于Android调试数据库是什么。欢迎您检查build/目录中生成的Java代码,以了解Room正在做什么。它不是缓存插入。根据代码的编写方式,这些插入可能是异步的。。。但是,由于您拒绝提供,没有人能帮您解决这个问题,或者在您的问题上帮您解决很多其他问题。嘿@commonware,这是一个很好的建议,但我引用的是,如果我重新启动应用程序,再次运行查询并获取行SELECT*,它将返回到两行。。所以Amitshekhariitbhu的Android调试数据库不是这里的问题。抱歉-我解释它返回到两个,意味着我可以在事情再次变得奇怪之前再插入两个。两者都适用。你可以再做2次插入。在它之后,剩下的只是缓存。我可以使用SELECT*从缓存中获取它们,它告诉我有4、5行。我重新启动应用程序,它告诉我有2行,因为缓存从未将其他插入转储到phone disk.db文件中。