2016-02-28 33 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

相關問題