StackOverflow の一部の回答が探しているものではないため、この質問をしています。私の問題は、Android 2.3 などの初期バージョンでは、クエリが非常に遅く、このメッセージが表示されることです。
私のエラーメッセージ
06:37:25.521: ERROR/CursorWindow(322): need to grow: mSize = 1048576, size = 45, freeSpace() = 43, numRows = 8928
07-12 06:37:25.521: ERROR/CursorWindow(322): not growing since there are already 8928 row(s), max size 1048576
私が 8928 行ある理由は、私が検索候補を作成していて、誰かが「t」を入力して 8928 行またはそれ以上の行を取得できるためです。これにより、明らかに Android 2.3 がフリーズします。検索候補のしきい値を制限することはできません。結果によっては、2 文字しかない結果が 20 件または 20000 件以上になる場合があるためです。
このリンクは、おそらく回答を得るのに最適な場所です。指定されたリンクの最後の答えは有望に思えますがcursor.getCount()
、そうしない限り行数を取得する方法はありません.私はそれについて間違って考えています。これに対する回避策はありますか?CursorWindow の問題を解決するには、コードでこれをどのように行いますか?