fra*_*llo 8 android android-contentprovider android-sqlite
我正在寻找一种方法来暂停给定ContentProvider的通知Uri.用例是:
Activity被绑定到一个CursorAdapter通过CursorLoader.Service可以在a上进行大量批量,单行更新ContentProvider.CursorLoader将加载其上的每一行更新内容,作为ContentProvider被通知侦听ContentResolver#notifyChange.由于我无法编辑ContentProvider,并且我无法控制批处理查询执行,是否有办法暂停Uri(在执行中Service)通知,直到所有ContentProvider管理的查询都已执行?我需要这个,以避免连续重新获得的闪烁CursorLoader.
您无法在您的服务中禁用此机制。但您应该尝试使用ContentProviderOperations对它们进行批处理。
我已经写了一篇关于 ContentProviderOperations 的介绍性文章和另外两篇文章,分别介绍了方法withYieldAllowed()和withBackReference()。
尤其是后一个应该对您在此处描述的内容感兴趣。
使用 ContentProviderOperations,您可以批量进行多个更新和插入。如果您随后调用applyBatch()ContentResolver 对象,则 ContentProvider 会立即执行所有这些内容。
现在我从未使用过 Nicolas Klein 的生成器,但由于他是一位非常非常熟练的 Android 开发人员并且在 Google 工作,我敢打赌生成的代码会使用事务,并且notifyChange()在最后只调用一次完整的批次。
正是您所需要的。
| 归档时间: |
|
| 查看次数: |
1595 次 |
| 最近记录: |