Android Loader - 处理任意数量的它们

时间:2012-09-22 11:45:03

标签: android sqlite android-loadermanager

假设我想运行类似于以下内容的查询:

SELECT _id FROM my_table WHERE name = user_supplied_name

如果用户提供了一些任意长度的名称数组,我需要从my_table中获取相应的_id数字数组,该怎么办?

是正确的解决方案:

a。)提供类似于:

的WHERE子句
WHERE name = name_1 OR name = name_2 OR name = name_3 ... etc

b。)为每个名称查询触发多个Loader(格式与我的第一个代码段相同)。但是,如果每个Loader都有不同的ID(如在Loader.getId()中),如何跟踪每个Loader。据推测,您必须保留一系列ID号(例如10到20)以避免冲突,但是您可以提供的名称数量有限,可以跟踪分配的名称等等。

c。)其他一些方式?

1 个答案:

答案 0 :(得分:0)

使用多个加载器不仅难以管理,而且效率低下。

使用一个查询搜索多个名称效果很好,并且与您想要对结果做的最匹配,所以去吧。


BTW:你也可以使用IN

SELECT _id FROM my_table WHERE name IN ('name1', 'name2', ...)