2016-02-28 46 views
-1

假设有2个线程,一个线程通过ContentProvider向数据库插入数据。
插入语句后,回调一个方法来查询anohter线程中的数据库。
但是,有时候查询可能会在表更新之前完成。
所以新的数据不能被提取。如何确保插入命令完成并且表已更新?

是否有一种方法可以使插入命令真正完成?
然后调用查询方法将返回新插入的数据。

+0

但是,在表更新之前,有时可能会完成查询。哪个查询是你引用的?插入或获取? –

+0

@ZahanSafallwa fetch。当读取时,表插入后不更新。 – sydridgm

+0

'insert()','update()'和'delete()'方法返回受影响记录的数量。 –

回答

0

insert()方法在该线程中返回时,插入完成。如果另一个线程依赖于该线程,则必须从第一个线程向第二个线程发送消息。

+0

实际上,我使用'loader'来自动查询数据库有何变化。并使用'AsyncQueryHandler'来插入。我不知道在后台执行的进程是否与您所说的一样:当我调用getContext()。getContentResolver()。notifyChange(uri,null);'时,数据库已经真正更新或正在执行。 – sydridgm

相关问题