Когато дадете един низ като whereArgs , един низ завършва в SQL командата, сякаш сте написали това:
... WHERE _id IN ('1,2,42')
Това ще сравни всеки _id стойност спрямо стойността '1,2,42' , което разбира се не работи.
Ако използвате три маркера за параметри и дадете три низа в whereArgs масив, ще получите три низа, като този:
... WHERE _id in ('1','2','42')
Това работи само когато _id колоната има целочислен афинитет, което е вярно за колона, декларирана като INTEGER PRIMARY KEY, но не и в общия случай.
API на база данни на Android не позволява на параметрите на заявката да имат какъвто и да е тип, освен низ. Когато използвате цели числа, трябва просто да ги вмъкнете директно (както в отговора на ianhanniballake):
String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";