Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- apk이름변경
- compse collectAsState
- 토글 험수
- TowmonUSB 연결오류
- 코루틴 job
- json 저장
- 비콘스캐닝
- Room 데이터베이스 업데이트
- 코틀린 트리거 버튼
- 안드로이드 sms
- 안드로이드 스튜디오 애뮬레이터
- TwomonUSB
- 라이브데이터 postValue
- compse state
- var 와 val
- 안드로이드스튜디오 jdk
- 코틀린 이미지저장 #파일저장
- 커스텀스피너
- 안드로이드 mvvm
- 플라스틱 생분해
- withContext
- viewmodelscope
- bluetoothmanager
- 스레드 #코루틴
- 모의위치 주입
- 안드로이드 비콘
- 셀룰로오스-g-폴리락타이드 공중합체
- 1회용 플라스틱컵
- 1회용컵
- #큐구조 #큐다운로드
Archives
- Today
- Total
EnjoyLife
viewModelScope 와 lifecycleScope 은 각각 어떻게 구별해서 쓸까? 본문
✅ viewModelScope를 사용하는 상황 (📦 데이터 중심, 오래 살아야 함)
예시이유
✅ 타이머 기능 | 화면 회전해도 계속 돌아야 하니까 |
✅ API 데이터 요청 후 LiveData로 저장 | 화면이 없어져도 데이터는 살아 있어야 하니까 |
✅ 검색어를 입력하면 자동 추천어 받아오기 | ViewModel이 처리하고, 결과만 View에 넘김 |
✅ 앱 실행 시 초기 데이터 로드 (캐시, 설정 등) | 화면보다 오래 살아야 함 |
✅ 파일 다운로드 중 상태 유지 | 화면이 닫혀도 계속 다운로드돼야 함 |
👉 특징: UI에 직접 영향을 안 주고, 상태 관리나 데이터 처리에 집중된 작업
✅ lifecycleScope를 사용하는 상황 (🎨 UI 중심, 화면에 종속)
예시이유
✅ 토스트 보여주기 | 화면이 사라졌는데 토스트 뜨면 앱 죽음 😨 |
✅ 다이얼로그 띄우기/닫기 | 화면과 같이 사라져야 함 |
✅ 버튼 클릭 시 잠깐 애니메이션 보여주기 | UI 생명주기와 1:1로 연결됨 |
✅ Fragment 화면 진입 시 자동 안내 메시지 띄우기 | 화면 나가면 메시지 안 나와야 함 |
✅ Navigation 이동 (예: 다음 화면으로 이동) | 이미 화면이 사라졌는데 이동하면 오류 발생 가능 |
👉 특징: UI에 직접 영향을 주는 일은 화면 생명주기랑 같이 움직여야 안전함
🎯 초간단 요약
기능쓸 스코프
데이터 저장/요청/처리 | viewModelScope |
UI 표시/애니메이션/토스트/다이얼로그 | lifecycleScope |
🧠 기억 공식
🧠 "이 작업이 화면이 사라져도 계속 돼야 하나?" → YES → viewModelScope
🧠 "이 작업이 화면이 사라지면 멈춰야 하나?" → YES → lifecycleScope
'안드로이드 개발 > 개발팁' 카테고리의 다른 글
내 앱의 특정 서비스가 foreground로 실행 중인지 추가 확인 (1) | 2025.05.28 |
---|---|
안드로이드스튜디오에 알맞는 JDK는 단연17 (2) | 2025.05.21 |
아직도 스레드를 아직도 사용하는 개발자들에게 고함 (0) | 2025.03.27 |
mvvm 기반의 앱 폴더 구조 (0) | 2025.03.20 |
Room 프로세스 (0) | 2024.12.10 |