I am trying to query data from sqlite db through CursorLoader. When i go through the documentation in android developer website, i can\'t find the limit query.
Cu
The hackish way:
String sortOrder = "ROWID LIMIT 5"
which will result in ORDER BY ROWID LIMIT 5
. ROWID would sort by the implicit row ids that SQLite keeps - very close to what happens when you don't specify a sort oder at all.
Not that this is abusing the fact that the order parameter does not check if the supplied value is just a valid order type. Kind of a buffer overflow attack.
A better way would be to define Uri
parameters.
// query code
Uri queryUri = Uri.parse("content://what/ever/items");
queryUri = queryUri.buildUpon().appendQueryParameter("limit", "5").build();
// in ContentProvider
String limit = queryUri.getQueryParameter("limit");
Both approaches will only work if the ContentProvider
is compatible with above attempts to limit. There is actually no well-defined way to limit or select certain data from a ContentProvider
. Each ContentProvider
comes with it's own contract so above will not work with every provider.