私は10メガバイトのデータベースとこのコードを持っています:
cursor = mDatabase.query(CitySQLiteHelper.TABLE_CITIES, ALL_COLUMNS, null, null, null, null, "name DESC", "20");
if (cursor.getCount() > 0) {
//
}
if 文で約 10 秒間実行がフリーズします。getCount と moveToFirst を試しました - どちらの場合もフリーズします。最初の呼び出しの後のクエリとカーソルへのすべての呼び出し (getString() など) は正常に機能します。なんで?
更新: スキーマ
sqlite> .schema cities
CREATE TABLE cities (region text, name text, latitude float, longitude float);
sqlite> select count(*) from cities;
130070