이 영역을 누르면 첫 페이지로 이동
CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

페이지 맨 위로 올라가기

CodeJUN

심심해서 하는 블로그

Cannot invoke setValue on a background thread 해결 방법

  • 2020.08.03 14:35
  • Android

AAC를 사용하면서 가끔 발생하는 오류이다. 보통 livedata 객체에 값을 넣을 때 발생한다.

 

LiveData 객체에 값을 설정하는 방법이 두 가지가 있는데,

 

setValue()와 postValue가 있다. 이 두 함수는 모두 LiveData객체에 값을 저장하는 역할을 한다.

이 두 함수를 구독하고 있는 옵저버가 있는 상태에서 사용하게 되면, value의 값이 변경되는 즉시 변경된 값을 받을 수 있다.

 

하지만 다른 점이 한 가지 있다.

setValue()는 메인 쓰레드에서 바로 반영된다는 것이고, postValue는 백그라운드에서 반영된다.

 

따라서 해당 오류를 해결하기 위한 방법으로는, 간단하게 setValue 대신 postValue를 이용하면 된다.

저작자표시 비영리 동일조건 (새창열림)

'Android' 카테고리의 다른 글

[안드로이드 모듈] 외부 종속 라이브러리 같이 배포  (0) 2020.12.17
Android Studio 이전 버전 세팅 불러오는 방법  (0) 2020.08.13
RecyclerView에 줄 라인 추가하기(Divider)  (0) 2020.07.27
Layout Inspector로 레이아웃 디버깅하기  (0) 2020.06.01
Android에서의 MVVM은 무엇이고 왜 사용하는가  (0) 2020.04.06

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [안드로이드 모듈] 외부 종속 라이브러리 같이 배포

    [안드로이드 모듈] 외부 종속 라이브러리 같이 배포

    2020.12.17
  • Android Studio 이전 버전 세팅 불러오는 방법

    Android Studio 이전 버전 세팅 불러오는 방법

    2020.08.13
  • RecyclerView에 줄 라인 추가하기(Divider)

    RecyclerView에 줄 라인 추가하기(Divider)

    2020.07.27
  • Layout Inspector로 레이아웃 디버깅하기

    Layout Inspector로 레이아웃 디버깅하기

    2020.06.01
다른 글 더 둘러보기

정보

CodeJUN 블로그의 첫 페이지로 이동

CodeJUN

  • CodeJUN의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 방명록

카테고리

  • 분류 전체보기 (54)
    • Android (38)
    • BlockChain (4)
    • React Native (4)
    • 아두이노 (2)
    • 프로젝트 (6)

공지사항

  • 공지 - 블로그를 시작하며

태그

  • 안드로이드
  • 강좌
  • arduino
  • 아두이노
  • C
  • c++
  • Firebase
  • Android

나의 외부 링크

  • Github

정보

CODE_JUN의 CodeJUN

CodeJUN

CODE_JUN

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © CODE_JUN. Designed by Fraccino.

티스토리툴바