如何正确处理内容提供​​者的重叠onChange

时间:2014-03-28 20:04:10

标签: android multithreading android-contentprovider

我已经能够成功地针对ContentProvider(在我的例子中是ContactsProvider)注册ContentObserver,并在发生更改时成功重新查询。

但如果我的应用正在观看联系人并且联系人应用正在进行导入,则会触发多个重叠的onChange调用。

处理此问题的正确方法是什么?

我最初的想法是在查询中间设置一个标志,并计算调用次数。如果在异步查询结束时,计数不为零,则只需再次查询。但我不确定我是不是会错过任何东西,或者引发太多的电话。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这听起来可行,假设您在后台线程中执行查询以避免减慢主UI线程的速度。

执行此类操作的标准方法是使用Loader。有一个nice series of articles更详细地描述了这种相对较新的方法以及为什么它被发明了。