ContentResolverとCursorの話
Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null, null);
非常に便利なんですが、queryで取ってきたCursorは、いらなくなったら破棄しないとIllegal State Exceptionが出ます。
関数の内部で上のようにquery実行したら、処理が終わった時点でcursor.close();
イメージ的にはmallocとfreeの関係みたいなもんか。使い終わったら破棄。
破棄するタイミングがおかしかったり、そもそも破棄してないと確保したCursorをOS側で破棄するタイミングでException。
という、デバッグ中にやっとわかったのでメモ。
