gpt4 book ai didi

android - 重 ContentProvider 查询和 ListView

转载 作者:行者123 更新时间:2023-11-29 17:33:30 28 4
gpt4 key购买 nike

对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。

我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很多”是指最多 100MB,但 ListView 应该会立即开始显示内容。

上下文是:这是笔记管理应用程序,默认情况下它应该显示所有未过滤的用户笔记。我正在研究如果有很多笔记,应用程序将如何表现。

现在我将推荐的方法与 Loader 框架一起使用:在 onCreateLoader 中启动 ContentProvider 查询,然后在 onLoadFinished 中将生成的 Cursor 分配给 ListView 的适配器。

这仍然是非常缓慢的(初始加载最多 10 秒)。我研究了 Cursor 的来源,知道它保留了一个数据“窗口”,因此不应一次加载所有 100MB 的文本。不过好像是这样。

我认为这是一项相当常见的任务,很惊讶没有找到任何关于它的有用信息。这是应用程序的关键部分,我想从一开始就把它做好 - 以后很难重构它。

所以有人可以帮忙吗?延迟加载是答案吗?为什么 Cursor 不自己做?如何正确执行 - 我是否必须先缓存 ID 数组并在滚动时加载 block ?

谢谢!

最佳答案

SimpleCursorAdapter + CursorLoader 应该可以正常工作,似乎您的数据库查询很慢,很可能您想对未索引字段上的数据进行排序

关于android - 重 ContentProvider 查询和 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744606/

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