7

我正在构建一个(主从)视图,它有 2 个片段:一个 ListFragment 和一个更详细的片段视图。单击列表中的任何项目都会显示详细信息视图。对于 ListFragment,我使用带有 CursorLoader 的 LoaderManager 来管理我的查询(我一直在遵循 Alex Lockwood 关于该主题的帖子中的优秀指南)。

在显示“详细”视图(通过单击列表视图)时,我需要查询同一个内容提供者,并获取单行信息。我不确定如何最好地处理这个问题。

因为我本质上是取回一行,并且可以立即释放光标:

  • 我应该直接使用 getContentResolver().query() 并直接使用游标吗?
  • 使用另一个 LoaderManager 来管理游标和结果?
4

1 回答 1

1

使用加载器管理器。

您在列表视图中创建加载程序的原因与您应该在详细信息视图中创建它的原因相同。任何繁重的操作都应该放在后台线程上,以防止 UI 无响应。数据库交互也不例外。看起来您的数据会立即加载,但实际上您正在直接在 UI 线程上做一些繁重的工作,这可能会给您的 UI 带来不必要的性能

项目黄油,哟

此外,您还可以获得 LoaderManager 保留结果的额外好处。因此,当您旋转并重新加载数据时,它正在加载缓存的结果,而不是您必须自己保留所有数据。

于 2013-01-29T20:03:16.267 回答