Посмотрите исходный код SearchRecentSuggestions
для примера. У него есть метод усечения истории до заданного количества записей, используя LIMIT -1 OFFSET <maxEntries>
. Сначала необходимо отсортировать записи в обратном порядке вставки, а затем пропустить первые maxEntries
.
Если вы вызываете это автоматически каждый раз при вставке, тогда вам нужно только LIMIT 1
, так как в любом случае никогда не может быть больше, чем maxEntries + 1
.
/**
* Reduces the length of the history table, to prevent it from growing too large.
*
* @param cr Convenience copy of the content resolver.
* @param maxEntries Max entries to leave in the table. 0 means remove all entries.
*/
protected void truncateHistory(ContentResolver cr, int maxEntries) {
if (maxEntries < 0) {
throw new IllegalArgumentException();
}
try {
// null means "delete all". otherwise "delete but leave n newest"
String selection = null;
if (maxEntries > 0) {
selection = "_id IN " +
"(SELECT _id FROM suggestions" +
" ORDER BY " + SuggestionColumns.DATE + " DESC" +
" LIMIT -1 OFFSET " + String.valueOf(maxEntries) + ")";
}
cr.delete(mSuggestionsUri, selection, null);
} catch (RuntimeException e) {
Log.e(LOG_TAG, "truncateHistory", e);
}
}