2012年12月3日月曜日

【Android】CursorでIllegalStateException


IllegalStateException: Couldn't init cursor window
とログを吐いてアプリが強制終了した.

原因はくだらないことだがカーソルを開いたままクローズしていなかったからだった.
メモリ不足のようだ.

このログが吐かれた場合は
・カーソルを開いて処理して…を繰り返すルーチンがある場合はちゃんとclose()してるか確認
・query()時に取得条件を増やすことで不要なデータは除去してメモリの圧迫を緩和する
ことに留意すべきである.

原因が前者であれば対応は楽だが,後者であればどれだけ対応しても場合によってはメモリ不足に陥る可能性が残るため
カーソルの扱い方の変更も視野に入れたほうがいいかもしれない.

0 件のコメント:

コメントを投稿