2017-09-03 8 views
0

私はアンドロイドスタジオを使用してカレンダーアプリケーションを作成しています。私はイベントを保存するデータベースを作った。私はAndroid Virtual Deviceが動作していればイベントを開くことができた。しかし、私がそれを閉じて再び開いたとき、私は再びイベントを開くことはなかった。 AVDが実行されている間、データベースが残っている可能性はありますか?データベースの寿命はどのくらいですか?

enter image description here

+0

'私はそれを閉じて再び開いたときに再びイベントを開くことはできませんでした。あなたが正常にそれを保存した場合は、あなたの仕事を見つける必要があります!アプリをアンインストールしたり、データを消去したり、手動でdbファイルを削除したり、コンテンツを変更したりした場合を除きます。 –

+0

アプリを離れる前にデータベースから切断しますか?コードplsを書く –

+0

あなたはおそらくSQLiteDatabase.close()メソッドを呼び出していません –

答えて

0

あなたが離れて開口部の生活を責任を分離し、接続を閉じていたたければまあ、私は、あなたが同じクラスにクエリして、データの操作を行っていることを、あなたのスニペットで見ることができますもっと楽になりました。

データベースへの接続を設定するDatabaseFactoryを作成しておく必要があります。 openConnection(string connectionString)Close()とquery(string sql、string [] param)のような単純なメソッドを使用します。

DatabaseConsumerと呼ばれる別のクラスでは、基本的に接続を開き、必要なデータ(ResultSet?)を返してから、接続を閉じます。

しかし、設計上の質問に答えるには、while文(res.moveToNext)の終了後に接続を閉じることができます。 myDB.closeConnection()のようなもの?

編集:接続を閉じないと、サーバーがその接続を保持したままになることがあります。設定値によっては、DBが処理できるオープンな接続の数が指定されます。しばらくすると、データベースは接続を許可せず、SQLServerException、boohooを与えます。

関連する問題