안드로이드 앱 개발기 #19 - 데이터 바인딩 적용했으나 UI 자동 업데이트 되지 않는 문제
요즘 안드로이드 앱 개발에서는 데이터 바인딩을 사용하는 것이 보편화 되어 가고 있습니다. 저 또한 뷰모델과 동시에 데이터 바인딩도 사용하고 있죠. 그런데 드물지만 이런 문제가 발생한 적이 있습니다. 그것은 뷰모델에서 데이터가 바뀌었는데 UI가 바뀌지 않는 것입니다. 데이터 바인딩이 원활하게 작동하지 않는다는 것이죠. 문제 해결을 위해 구글링을 해보았습니다. 역시 스택오버플로우가 먼저 검색이 되더군요.
해결 방법
바인딩 객체의 invalidateAll() 함수를 호출하면 해결된다는 답변을 스택오버플로우에서 봤습니다. 실제로 실무에서 이 함수를 호출하여 UI 갱신이 되지 않는 문제를 해결했습니다.
그러나......
invalidateAll() 함수를 사용하는 것이 나쁘다는 것은 아닙니다. 그렇지만 UI가 업데이트 되지 않는 근본적인 문제가 무엇인지는 찾아볼 필요가 있습니다. 쉽게 재현될 문제는 아닌 듯 보이지만, 예전 프로젝트에서 사례가 있으니 그것을 참고해볼 예정입니다.
참고 사이트
지난 안드로이드 앱 개발기
- #18 - 에뮬레이터에서 토스트 안 보이는 문제 (1)
- #17 - 유닛 테스트를 실행할 수 없는 문제 해결
- #16 - 잘 되던 유닛 테스트를 실행할 수 없는 문제
- #15 - 앱 재시작 코드
- #14 - Fragment 사용시 간혹 발생할 수 있는 Fragment not attached to Activity 문제
- #13 - Retrofit2 활용 서버로부터 받을 데이터 유형 JsonElement (JSONObject 사용 불가)
- #12 - Glide 활용하여 이미지 다운로드 받는 코드
- #11 - 처리할 수 없는 예외/크래쉬 발생시 앱 재시작하기
- #10 - 안드로이드 스튜디오 업그레이드 후 단축키가 안되면? (맥북)
- #9 - LiveData 객체에 동일 데이터 설정하면 observer 실행되는지 확인 목적의 샘플 프로젝트
- #8 - 안드로이드 스튜디오에서 빌드시 발생하는 Build Tools revision 31.0.0 오류
- #7 - 'UGC(사용자 생성 콘텐츠) 정책 미준수'로 심사 거절
- #6 - 뷰에 역마진 적용 불가시 translationX, translationY 속성 사용하기
- #5 - 프로젝트 생성 후 빌드시 발생 오류: The minCompileSdk (31) specified in a dependency's AAR metadata
- #4 - 프로젝트 생성 후 빌드시 발생 오류: The minCompileSdk (31) specified in a dependency's AAR metadata
- #3 - 무한 롤링 배너 만드는 법을 찾았으나, 높이를 wrap_content로 지정이 안 먹히는 문제점이...
- #2 - setContentView 메소드의 파라메터를 변경하지 않아서 발생한 화면 오류
- #1 - 페이스북 로그인 연동시 발생했던 문제들
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.