私はアンドロイドアプリでjavaを使用してルームのハングを取得しようとしています。私は問題に遭遇しましたが、データベースが2回目のクエリを受けた後にのみクエリが有効になります。ルームパーシスタンスライブラリのクエリがすぐに反映されないのはなぜですか?
例: アプリケーションには、「Return DB」と「Delete DB」の2つのボタンがあります。 「DBの削除」ボタンをクリックすると、メインアクティビティのメソッドが使用されます。このメソッドは、AsyncTaskを使用して、関連するDAOを呼び出します。つまり、エンティティのテーブルには現在、3つのレコード{A、B、C}があります。 "Delete DB"を押して "Return DB"を押すと、{}を返しますが、この場合でも{A、B、C}が返されます。この後、「Return DB」を2回押すと、{}が返されます。
これに新しいので、誰かが似たような問題に遭遇したことがあるのか不思議でした。ありがとう!
MainActivity.java
myEntityDao.java
.
.
.
@Query("DELETE FROM MyEntity")
void nukeTable();
.
.
.
削除タスクが完了するのを待ってから、2番目のボタンを押しますか?あなたの質問にそれのコードがないので、2番目のボタンは正確に何をしますか? – CommonsWare