メソッドが実行中に進行中のダイアログを表示するためのスレッドを作成する可能性はありますか?AsyncTaskで行われているように、データベースがブロックされ、AsyncTask
ProgDialog.show()
のようなものがstartThread
のようなもので、最後の行がProgDialog.dismiss()
などのstopThread
のようなものであるとしましょう。
私はそれを求める理由は、私はAsyncTaskでそれを試みたが、私はAsyncTaskの内側と呼ばれるものをデータベース・メソッドは、メインUI内の他のデータベース操作しながら、データベース操作を実行しようとしてまでそれがうまく働いていたということであり、まだ終了していない(または開始しようとした)。
データベースがブロックされているという例外がありました。私はほとんどの場合、sqliteのトランザクションを一貫性とパフォーマンスのために使用します。この場合も必要です。
http://www.vogella.de/articles/AndroidPerformance/article.htmlこちら。おそらくメソッドを同期させるべきです。アーキテクチャに何か問題がある可能性があります。ロックは正常ですが、デッドロックは正常ではありません。 –
最良の方法は、単一のスレッド上ですべてのdb操作を実行する(または少なくとも複数のスレッド同期を管理する)単一のデータベースマネージャクラスを持つことです...ハンドラを使用して、その中のすべてのdb操作を実行できます...コード将来のコードでデッドロックを作成する方法がないので、安全です。 –