С cursor.getCount()
вы не можете гарантировать, что он возвращает реальное количество возвращенных предметов. Есть гораздо лучшие способы:
1 - Если вы используете контент-провайдеров, вы можете сделать запрос и использовать Column (_COUNT)
, включенный в BaseColumns для вашей проекции
@Override
public Cursor query(SQLiteDatabase db, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
...
projection = new String[] {
ContentContract.NotificationCursor.NotificationColumns._COUNT,
};
...
Cursor cursor = queryBuilder.query(db, projection, selection, selectionArgs, groupBy, having, sortOrder);
return cursor;
}
2 - Чтобы выполнить rawQuery, используя SELECT COUNT(*)
, как @saurabh говорит в своем ответе.