2017-01-21 1 views
0

초기 화면에서 데이터베이스에서 검색된 데이터를 표시하는 애플리케이션 개발. 사용자는 별도의 편집 화면을 통해 데이터를 편집 할 수 있습니다. 편집 화면을 종료하면 사용자가 초기 표시 화면으로 돌아가고 데이터베이스는 다시 쿼리되지만 반환 된 데이터는 편집 이전 값입니다.안드로이드 업데이트 기록 및 쿼리

나는 DB 공급자 모델을 사용하고 있습니다 및 시도 :

  • 별도의를 사용하여 초기 화면
  • 로 돌아 별도의 커서마다 사용하여 초기 데이터베이스 검색
  • 에 사용되는 커서를 폐쇄 쿼리를 사용하여 편집 화면에 표시된 데이터를 가져옵니다.
  • 해당 커서 데이터 작업이 완료 될 때 사용 된 각 커서가 닫혀 있는지 확인하십시오.

데이터베이스 쿼리 및 응용 프로그램 다시 실행은 편집 된 값을 표시하므로 업데이트가 작동하고 있음을 확신합니다. 내가 뭘 놓치고 있니?

+0

[로더] (https://developer.android.com/guide/components/loaders.html)를 사용하고 있습니까? – Karakuri

+0

로더를 사용하지 않고 한 번에 하나의 레코드 만 작업합니다. – MrMagoo

+0

이 시점에서 코드가 예상 한대로 작동하지 않는 부분을 찾아야합니다. 초기 화면으로 돌아갈 때 실제로 새 쿼리를 실행하는지,이 새 쿼리가 실제로 일부 데이터를 반환하는지, UI 업데이트를 트리거하고 새 값을 뷰에 바인딩하는지, 새 값이 실제로 새 값인지 확인하십시오. 오래된 값은 아닙니다 (어쩌면 거기에 어떤 종류의 캐싱이있을 것입니다). 어딘가에 뭔가 의도 된대로 작동하지 않습니다. – Karakuri

답변

0

편집기 기능을 지원하는 데 사용 된 클래스의 상태를 잘못 이해 한 것과 관련된 문제로 발견되었습니다. OnStop() 및 onDestroy()는 편집 화면을 종료 할 때 호출되며 해당 메서드에서 데이터베이스를 업데이트하는 메서드를 호출하고있었습니다.

대신에 onBackPressed()를 사용하도록 변경하고 업데이트 된 값이 표시되기 전에 업데이트 프로세스를 완료하십시오.