일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 메인 스레드
- LiveData
- android arhitecture componets
- UI Thread
- 안드로이드 UI 스레드
- google io 2017
- Android
- 안드로이드 스레드
- android studio
- 안드로이드
- 아키텍처 컴포넌트
- android ViewModel
- 작업 스레드
- ui 스레드
- worker thread
- 뷰모델
- 안드로이드 스튜디오
- 안드로이드 아키텍처 컴포넌트
- 안드로이드 뷰모델
- 안드로이드 빌드
- 안드로이드 Gradle
- 안드로이드 네트워크 통신
- 안드로이드 그래들
- ViewModel
- Architecture Components
- 아키텍쳐 컴포넌트
- 라이브데이터
- 안드로이드 메인 스레드
- Today
- Total
목록android ViewModel (2)
현치비
오늘은 LiveData를 알아보자. LiveData? 데이터를 가지고 있고, 데이터의 변경을 감지할 수 있는 클래스 끝이다. 필자는 Api 응답이나, 프래그먼트 간의 데이터 교환, 데이터 통일성 유지를 위해 많이 사용한다. 예를 들어, 카페 앱을 만든다고 생각해보자. 카페 게시글 List 화면(A) 프래그먼트, 카페 게시글 상세정보화면(B) 프레그먼트 두 프래그먼트 화면에서 각 카페 글에 대한 좋아요 갯수 데이터를 가지고 있다고 가정하자. A -> B 프레그먼트로 전환될 때 우리는 newInstance(int likeCount) 이런식으로 데이터를 넘긴다. B 프레그먼트에서 데이터를 변경하고, likeCount++; B 프레그먼트에서 BackKey를 눌러 A로 다시 돌아오는 경우에 A에게 변경된 데이터를..
이번 시간은 ViewModel을 알아본다. 먼저 정의를 알아보자. ViewModel Activity는 가로 회전을 하게되면, 새로운 Activity의 인스턴스가 생성된다. 즉, 기존 Activity는 onPause -> onStop -> onDestory타서 죽고, 새로운 Activity가 새로 생성되어 onCreate -> onStart -> onResume를 탄다. 위가 왜 문제가 된다는 것일까? 위 첫 번째 Activity(보라+파란 색 화살표)에서 fetchUser() 메서드로 유저 정보를 가져온다. 가로 모드로 전환. 새로운 Activity가 다시 fetchUser() 메서드로 유저 정보를 가져온다. 중복 데이터 통신 == 데이터 낭비 + 배터리 낭비 ViewModel을 쓰면 다음과 같이 해결..