2017-12-15 9 views
0

나는 안드로이드 애플 리케이션에서 자바를 사용하여 룸의 교수형을 얻으려고하고 있습니다. 하지만 데이터베이스에 두 번째 쿼리 한 후에 만 ​​쿼리가 적용되는 문제가 발생했습니다.실내 전시실 보관함 쿼리가 즉시 적용되지 않는 이유는 무엇입니까?

예 : 응용 프로그램에는 "Return DB"및 "Delete DB"라는 두 개의 버튼이 있습니다. "DB 삭제"버튼을 클릭하면 주 활동에있는 방법이 사용됩니다. 이 메서드는 AsyncTask를 사용하여 연결된 DAO를 호출합니다. 엔티티의 테이블에는 현재 {A, B, C} 개의 레코드가 있습니다. "DB 삭제"를 누른 다음 "DB 반환"을 누르면 {}을 반환 할 것으로 예상되지만이 경우 {A, B, C}는 여전히 반환됩니다. 이 후에도 "Return DB"를 두 번 누르면 {}이 반환됩니다.

누구에게도 비슷한 문제가 발생했는지 궁금합니다. 감사!

MainActivity.java

myEntityDao.java는

. 
. 
. 
@Query("DELETE FROM MyEntity") 
void nukeTable(); 
. 
. 
. 
+0

삭제 작업이 완료 될 때까지 기다렸다가 두 번째 버튼을 누르십니까? 두 번째 버튼은 정확히 무엇을합니까? 질문에 해당 코드가 없으므로? – CommonsWare

답변

0

이런, 미안, 난 바보를했다. AsyncTask를 실행하고 즉시 결과를 로깅했지만 작업이 백그라운드 스레드에서 수행되었으므로 새 데이터를 기다리지 않고 이전 데이터를 기록했습니다. 방금 AsyncTask 자체에 Log 문을 넣어야했습니다.