APIレベル7を使用してタブベースのアプリケーションを開発しました。Android 2.1デバイスでうまく動作しています。しかし、私は2.2デバイスでそれを実行しようとしているときに問題を与えている。私が最初にタブにアクセスすると、それは問題ありません。しかし、同じタブに再度アクセスすると、次のエラーメッセージが表示されます。Androidの上位バージョンの問題
android.database.sqlite.DatabaseObjectNotClosedException:アプリケーションはここ
開かれたカーソルまたはデータベースオブジェクトしかし2.1デバイスではありません、このような問題をクローズしませんでした。ここでは、どのタブの各アクティビティでもデータベース接続を閉じていることを言及したいと思います。
さらに驚くべきことに、最初はタブAにあります。タブAについては、データベース操作をいくつか行っています。それから私は同じデータベースでデータベース操作も行われる問題なくタブBに行きます。その後、私がタブAに戻ってきたら、このエラーを出しています。データベースとカーソル閉じ関連の問題であれば、タブAからBに行くときに例外が発生するはずです。
すべてのカーソルを閉じてもよろしいですか?アクティビティ内で使用されるカーソルは自動的に閉じることができます。データベースからカーソルを返すたびにstartManagingCursor(Cursor)を呼び出すだけです。前にヌルチェックを行います(そうしないと、アクティビティを終了するときに例外が発生します)。 –
すべてのカーソル操作の後にカーソルを閉じるか、startManagingCursor(Cursor)を使用しています。また、カーソルの閉じ方の問題も2.1で発生するはずです。しかし、私の場合、2.1では問題はありません。それは2.2でのみprobを与えています。 –
はい、2.2でしか起こらないのは奇妙です。データベース接続を2回開いていないことを確認していますか?編集:私はあなたが接続を閉じることがわかります。 –