【问题标题】:How to do mulitple serial DB queries with CursorLoader如何使用 CursorLoader 进行多个串行数据库查询
【发布时间】:2018-04-22 18:51:43
【问题描述】:

我想使用CursorLoader 以特定顺序对数据库进行 2 次查询,然后再将数据显示到屏幕上。更具体地说,我只想在第一个查询返回其数据后执行第二个查询。

我所知道的是:

  1. 我执行第一个查询mLoaderManager.initLoader(TASK_LOADER_1, null, this);

  2. 我在onLoadFinished(Loader<Cursor> loader, Cursor data) 中得到结果,并从那里创建一个新的加载程序mLoaderManager.initLoader(TASK_LOADER_2, null, this); 来执行第二个查询

  3. 当第二个查询返回时,我显示数据。

有没有更有效的方法来使用加载器来做到这一点?如果我想连续进行更多查询怎么办?我应该遵循相同的模式吗?

谢谢。

【问题讨论】:

    标签: android android-sqlite android-loadermanager android-loader


    【解决方案1】:

    是的,我认为实施还可以。在使用 initLoader 函数启动加载程序时,您指定了与加载程序关联的 id,并且您可以在您的 onLoadFinish 方法匹配相同的 loader.getId() 方法中追溯哪个加载程序回调已完成从数据库中获取数据.

    在顺序数据库调用的情况下(如果这是您的确切用例),您需要在前一个数据库调用完成时调用下一个数据库调用,就像您现在执行的方式一样。

    对于一系列多个顺序数据库调用,您可以遵循相同的结构。只需维护一个队列以跟踪后续的数据库调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2013-01-30
      • 2015-08-12
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多