首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlbrite同时运行insert和query操作,查询将得到null结果

Sqlbrite同时运行insert和query操作,查询将得到null结果
EN

Stack Overflow用户
提问于 2018-04-09 12:44:20
回答 1查看 179关注 0票数 0

这个应用程序在同一个活动中有两个片段。片段A有一个按钮,然后按下这个按钮就会启动一个并行任务,这会在数据库中插入或更新很多记录。片段B包含一个ViewPagerViewPager使用FragmentStatePagerAdapter并持有片段C,每个页面将查询并显示数据库中的一条记录。

片段B将正常工作,直到按下片段A中的按钮。之后,ViewPager中的随机页面将无法正常工作。当记录存在时,某些页面将查询空记录。有两种情况。

第一种情况,片段A将有插入和更新操作。这是最坏的情况,一些指定的记录在分片C中会得到一个空的结果,即使滑动ViewPager重新打开指定的页面,该记录仍然是空的,直到分片A中的并行任务完成并重新打开分片B,然后分片C才能正常工作。

第二种情况,片段A将有插入和查询操作,没有更新操作。这种情况不会得到null结果,但一些指定的记录将被卡住,直到片段A中的并行任务完成。

是什么导致了这些问题?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-04-09 14:27:10

我不确定,但是,我认为您需要对片段A中的数据库操作使用事务处理。当您从片段A插入或更新数据库中的数据时,您需要使用以下方法:

代码语言:javascript
复制
database.beginTransaction();
database.setTransactionSuccessful();
database.endTransaction();

请查看此链接以获取有关此方法和用途的详细说明。http://www.tothenew.com/blog/sqlite-locking-and-transaction-handling-in-android/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49725694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档