0
こんにちは私のDB接続が開かれているが正しく閉じられていないというエラーを取り除くためにコードをクリーンアップしようとしています。Android DB接続とスコープに関するキャッチしよう
もし私がdb.open()を持っていれば、db queryのあとdb.close()のtry文をtry文の中で同じdb接続を使用するか、離散的に実行しますDB接続が利用できないようにcatch文を試してください。
db.open();
try {
// here
db.getThings()
} catch() {
// there
}
try {
// here 2
db.getMoreThings()
} catch() {
// there 2
}
db.close();
またはこの:
try {
// here
db.open();
db.getThings()
db.close();
} catch() {
// there
}
try {
// here 2
db.open();
db.getMoreThings()
db.close();
} catch() {
// there 2
}
私は考えているだろうと開口部1デシベル接続の最初のソリューションは良い方です要するに
は、私は、コードのようなものを持っている必要があります。しかし、私は問題をDB接続を終了しないで実行していると私は、私の設計に根本的な問題があると考えている時点です。また、onResume()で接続を開いてから、onPause()を閉じても問題は解決しました。
私は 'Finally'ステートメントに' db.close() 'を置くことを考えていました。私は 'try/catch'が実際に例外をキャッチすると、' db.close() 'は実行されませんが、最後に' db.close() 'が保証されていることに気づきました。私はしかし、質問があります:tryステートメントの前にdb.open()を持つ方が良いと思いますか?アドバイスありがとうございます – wired00
私はdb.openを試す前に置いていますが、例外が発生する可能性があります。そして、try - finallyの中に置くと、db.openは例外を発生させ、finallyブロックのdb.closeも元のマスクをマスクする例外( "DB not open"のようなもの)を発生させます。 – slkorolev
ありがとうございます。これを今実装するだけで、どのようにして – wired00