2012-03-18 10 views
0

ここで私は困惑しています。私はonCreateメソッドでデータベースを開きます 私は、カーソルを開いて関数を呼び出し、一連の処理を行い、関数の最後にカーソルを閉じます。「アプリケーションはここで開いたカーソルまたはデータベースオブジェクトを閉じなかった」が表示されますが、コマンドを閉じて閉じます。

その後、私はOnPauseに入れて、私はまた、データベースを再オープンし、同じ機能がオンのデータを更新するために呼び出さを作成することを呼び出すonResumeを得たsuper.onPause機能

を呼び出す前に、データベースを閉じます。

Finnaly私は、super.onDestroyが呼び出される前にデータベースを閉じるonDestroy関数を取得しました。

は、ここではデータベース http://pastebin.com/GVcnsVCc

に関連する部分だとここに私のエラーです: http://pastebin.com/Vd6Sdqzp

私はこの活動を開始したときか、私はそれによながらも、私はすべてのエラーを得ることはありません、それは私が何かをクリックして、この1つから別のアクティビティに行き、エラーが発生したときです。

+0

'onPause'と' onDestroy'でそれを閉じる必要はありません。ただonPauseがそうするでしょう。 'onPause' if文にログメッセージを入れて、実際にそれを閉じているかどうかを確認してください – Blundell

答えて

0

Do not startManagingCursor(c)。これはa)廃止されました。b)あなたのためにカーソルを閉じる()と再クエリー()しようとします。つまり、データベースを閉じる必要があるため、カーソルを自分で閉じることはできません。 (012hの場合はstopManagingCursor(c)となります)

あなたは自分でクエリを処理しているように見えるので、その部分をスキップすることができます。

また、getdata()で終了したデータベースを直接閉じることもできます。あなたのアプリケーションがアクティブな間は常にデータの読み書きを行わなければ、開いたままにする必要はありません。

関連する問題