我想使用 CursorLoader
对数据库进行 2 次查询, 在将数据显示到屏幕之前具有特定顺序。更具体地说,我只想在第一个查询返回其数据后才执行第二个查询。
我所知道的是:
我执行第一个查询
mLoaderManager.initLoader(TASK_LOADER_1, null, this);
我在
onLoadFinished(Loader<Cursor> loader, Cursor data)
中得到结果,然后我从那里创建了一个新的装载机mLoaderManager.initLoader(TASK_LOADER_2, null, this);
执行第二个查询当第二个查询返回时,我显示数据。
是否有更有效的方法使用加载程序来执行此操作?如果我想连续进行更多查询怎么办?我应该遵循相同的模式吗?
谢谢。
最佳答案
是的,从我的角度来看,实现没问题。使用 initLoader
启动加载器时函数,您正在指定一个与加载程序关联的 id,您可以在 onLoadFinish
中追溯哪个加载程序回调已完成从数据库中获取数据。匹配相同的方法 loader.getId()
方法。
在顺序数据库调用的情况下(如果这是您的确切用例),您需要在前一个数据库调用完成执行时调用下一个数据库调用,就像您现在所做的那样。
对于一系列多个顺序数据库调用,您可以遵循相同的结构。只需维护一个队列来跟踪后续的数据库调用。
关于android - 如何使用 CursorLoader 进行多个串行数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969566/