gpt4 book ai didi

android - LoaderManager.onLoadFinished 即使在特定查询与更新不匹配时也会被调用

转载 作者:行者123 更新时间:2023-11-29 18:02:01 26 4
gpt4 key购买 nike

我有一个 Android 应用,它有一个我经常更新的 Content Provider。为了加载上述数据的列表,我使用了 LoaderManager。

在详细信息页面上,我也使用 LoaderManager,但我是这样创建 CursorLoader 的:

return new CursorLoader(getActivity(), DataProvider.POST_URI, projection, "_id = ?", new String[]{String.valueOf(post_id)}, null);

如您所见,我只从表中获取了一项。当行被更新时,onLoadFinished 回调被更新,而且,当其他行被添加/修改到表中时。这不会很麻烦,但有时,它会导致整个列表变成空白并重新绘制,这在多次发生时可能会让用户感到沮丧。

你知道我怎样才能避免这种行为吗?

最佳答案

正在重新加载,因为您将此游标加载器与 DataProvider.POST_URI 相关联,我假设它是您用于 posts 表的那个。每当此表中的任何元素发生变化时,所有具有该 Uri 的游标都会收到通知。如果你想接收单个项目的通知,你应该实现一个新的 Uri 方案来匹配那个项目。查看 UriMatcher 的文档类为例。您应该执行类似于 PEOPLEPEOPLE_ID 情况的操作。

编辑

您可以在 ContentProvider 上找到很好的教程 here .特殊的第 9.4 节应该有助于正确实现 ContentProvider

关于android - LoaderManager.onLoadFinished 即使在特定查询与更新不匹配时也会被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15439551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com