読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

複数Activity間でSQLiteを使用する場合

Android


複数のActivity間でSQLiteを使用する場合「SQLiteDatabase created and never closed」というエラーが発生するときの解決方法です。
Cursorのクローズを行っていないのが原因なのですが、どこで書けばいいのが微妙だったので調べました。
※Cursorをすぐにクローズする場合は特に問題なのですが、SimpleCursorAdapter等でActivityでCursorを保持している場合です。


ググって試した結果、onResumeとonPauseで書けば問題なさそうです。


onResumeでCursorをオープンして、onPauseでCursorをクローズするようにします。

@Override
protected void onResume() {
    super.onResume();
    // ココでオープン
}

@Override
protected void onPause() {
    super.onPause();
    // ココでクローズ
}

参考:API Only - Stack Exchange


最近はStack Overflowにお世話になりっぱなしです。
英語は全然分かんないですけど、雰囲気だけでなんとなく解釈してます。