0

APIレベル7を使用してタブベースのアプリケーションを開発しました。Android 2.1デバイスでうまく動作しています。しかし、私は2.2デバイスでそれを実行しようとしているときに問題を与えている。私が最初にタブにアクセスすると、それは問題ありません。しかし、同じタブに再度アクセスすると、次のエラーメッセージが表示されます。Androidの上位バージョンの問題

android.database.sqlite.DatabaseObjectNotClosedException:アプリケーションはここ

開かれたカーソルまたはデータベースオブジェクトしかし2.1デバイスではありません、このような問題をクローズしませんでした。ここでは、どのタブの各アクティビティでもデータベース接続を閉じていることを言及したいと思います。

さらに驚くべきことに、最初はタブAにあります。タブAについては、データベース操作をいくつか行っています。それから私は同じデータベースでデータベース操作も行われる問題なくタブBに行きます。その後、私がタブAに戻ってきたら、このエラーを出しています。データベースとカーソル閉じ関連の問題であれば、タブAからBに行くときに例外が発生するはずです。

+0

すべてのカーソルを閉じてもよろしいですか?アクティビティ内で使用されるカーソルは自動的に閉じることができます。データベースからカーソルを返すたびにstartManagingCursor(Cursor)を呼び出すだけです。前にヌルチェックを行います(そうしないと、アクティビティを終了するときに例外が発生します)。 –

+0

すべてのカーソル操作の後にカーソルを閉じるか、startManagingCursor(Cursor)を使用しています。また、カーソルの閉じ方の問題も2.1で発生するはずです。しかし、私の場合、2.1では問題はありません。それは2.2でのみprobを与えています。 –

+0

はい、2.2でしか起こらないのは奇妙です。データベース接続を2回開いていないことを確認していますか?編集:私はあなたが接続を閉じることがわかります。 –

答えて

0

タブ関連の問題ではありません。 onCreate()でコード -

datePickerDialog = new DatePickerDialog(getParent(), ButtonTestDateListener, 
       mYear, mMonth, mDay); 

は、私はちょうど整数としてmYearmMonthmDayを宣言しましたが、何の初期化はありませんでしたがあります。 2.1ではうまくいきましたが、2.2でprobを与えました。その前に私はデータベース接続を開いていて閉じていません。それはなぜそのような問題を与えているのですか?

関連する問題