• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

라이브 데이터 + 데이터 바인딩 질문드립니다!

21.03.30 23:59 작성 조회수 112

0

var todos : LiveData<List<Todo>> = getAll()
android:text="@{viewModel.todos.toString()}"

궁금한 부분이 todos가 라이브 데이터여서 관찰이 가능한데 데이터가 바뀌는 게 감지가 되면, getAll() 함수가 실행되는 구조라고 이해했습니다. getAll() 함수에 로그를 남겼는데 데이터를 추가해도 getAll()에 남긴 로그가 찍히지
않아서 질문드립니다..!

답변 1

답변을 작성해보세요.

0

아마도 로그는 한번만 실행될 것 입니다.

내용이 바뀌면 getAll() 이 실행되는 것이 아니고 최초에 getAll() 로 todos를 통해 접근할 객체들을 지정해 주게 되는데 내용이 바뀌게 되면 todos를 observe 하고 있는 쪽에서 로그를 찍어야 합니다.

코드를 보면 DataBinding을 사용하고 계시기 때문에 딱히 로그를 작성할 수 있는 부분은 없습니다.

데이터 바인딩 대신 라이브데이터를 observe() 하신다면 여기에 로그를 작성하셔야 변경되었을 때 마다 로그가 출력되게 됩니다.

결론적으로 getAll()은 최초에 한번만 실행이 될 겁니다.