我正在构建一个 ListView,ListView 中的每个项目都有来自几个不同游标的数据。我有一个对象,它包含 ListView 中每个项目的所有数据。我正在使用这些对象的 ArrayList 来填充 ListView。
我现在实现它的方式是,我首先获得一个指向 ContentProvider A 中所有行的游标。我遍历这个游标,将它的三个字段添加到 ArrayList 中的每个对象。在此循环的每次迭代中,都会创建一个新游标,以根据 ContentProvider A 中的字段从 ContentProvider B 中提取一个字段。该字段用于在 ContentProvider C 中提取另一个字段。因此,本质上,创建了很多游标,并且后续游标的查询依赖于来自先前游标的数据。
据我了解,使用 CursorLoaders 和 LoaderManager 在单独的线程中生成游标并正确管理它们的生命周期是理想的。我不确定如何翻译这种方法,或者实际上是否有更好的方法可以首先最小化游标的数量。