2014-03-28 14 views
0

我已經能夠成功地向ContentProvider註冊ContentObserver(在我的情況下爲ContactsProvider),並且在發生更改時成功地重新查詢。如何正確處理來自內容提供者的重疊onChange

但是,如果我的應用程序正在觀看聯繫人,並且聯繫人應用程序正在執行導入,則會觸發多個重疊的onChange調用。

解決這個問題的正確方法是什麼?

我最初的想法是設置一個標誌,如果在查詢中,並計算調用次數。如果在異步查詢結束時,計數不爲零,只需再次查詢。但我不確定我不會錯過任何東西,或觸發太多的電話。

有什麼建議嗎?

回答

0

這聽起來很有效,假設您在後臺線程中執行查詢以避免減慢主UI線程的速度。

做這種事的標準方法是用Loader。有一個nice series of articles更詳細地描述了這個相對較新的方法,以及它爲什麼被髮明。

+0

我看了一下,但我已經創建了一個層次結構,它使用AsyncTask爲sqllite和內容提供者完成了工作。 – user3280874