如何使用 CursorLoader 进行多个串行数据库查询
How to do mulitple serial DB queries with CursorLoader
我想使用 CursorLoader
以特定顺序对数据库进行 2 次查询,然后再将数据显示到屏幕上。更具体地说,我只想在第一个查询返回其数据后才执行第二个查询。
我所知道的是:
我执行第一个查询mLoaderManager.initLoader(TASK_LOADER_1, null, this);
我在 onLoadFinished(Loader<Cursor> loader, Cursor data)
中得到结果,然后我从那里创建了一个新的 Loader mLoaderManager.initLoader(TASK_LOADER_2, null, this);
来执行第二个查询
第二次查询时returns我显示数据
有没有更有效的方法来使用加载器来做到这一点?如果我想连续进行更多查询怎么办?我应该遵循相同的模式吗?
谢谢。
是的,我认为实施还不错。在使用 initLoader
函数启动加载程序时,您指定了一个与加载程序关联的 id,您可以在匹配相同的 onLoadFinish
方法中追溯哪个加载程序回调已完成从数据库中获取数据loader.getId()
方法。
在顺序数据库调用的情况下(如果这是您的确切用例),您需要在前一个数据库调用完成执行时调用下一个数据库调用,就像您现在所做的那样。
对于一系列多个顺序数据库调用,您可以遵循相同的结构。只需维护一个队列来跟踪后续的数据库调用。
我想使用 CursorLoader
以特定顺序对数据库进行 2 次查询,然后再将数据显示到屏幕上。更具体地说,我只想在第一个查询返回其数据后才执行第二个查询。
我所知道的是:
我执行第一个查询
mLoaderManager.initLoader(TASK_LOADER_1, null, this);
我在
onLoadFinished(Loader<Cursor> loader, Cursor data)
中得到结果,然后我从那里创建了一个新的 LoadermLoaderManager.initLoader(TASK_LOADER_2, null, this);
来执行第二个查询第二次查询时returns我显示数据
有没有更有效的方法来使用加载器来做到这一点?如果我想连续进行更多查询怎么办?我应该遵循相同的模式吗?
谢谢。
是的,我认为实施还不错。在使用 initLoader
函数启动加载程序时,您指定了一个与加载程序关联的 id,您可以在匹配相同的 onLoadFinish
方法中追溯哪个加载程序回调已完成从数据库中获取数据loader.getId()
方法。
在顺序数据库调用的情况下(如果这是您的确切用例),您需要在前一个数据库调用完成执行时调用下一个数据库调用,就像您现在所做的那样。
对于一系列多个顺序数据库调用,您可以遵循相同的结构。只需维护一个队列来跟踪后续的数据库调用。