강의

멘토링

커뮤니티

Inflearn Community Q&A

jminie4598's profile image
jminie4598

asked

Easy-to-understand introduction to Modern Android Development by Frozen Coder

Practice9 - Implementing Automatic Cache Cleanup (Worker, WorkRequest, WorkInfo)

Practice9 자동 캐시 정리 구현하기에서 질문

Written on

·

206

0

ViewModel에서 saveCacheDeleteMdoe 와 getCacheDeleteMode 함수 두 가지를 구현하실 때 왜 하나는 viewModelScope을 사용하시고 하나는 withContext를 사용하신건지 궁금합니다!

jetpackarchitectureandroidkotlin

Answer 2

1

jminie님의 프로필 이미지
jminie
Questioner

감사합니다!

1

frozencoder님의 프로필 이미지
frozencoder
Instructor

saveCacheDeleteMode 와 getCacheDeleteMode 모두 코루틴 내부에서 동작되어야 하는데요, 차이는 작업의 형태입니다. 코루틴 작업이 여러개 있을 때 saveCacheDeleteMode는 코루틴 순서에 상관없이 파일에 값을 저장하기만 하면 끝인데, getCacheDeleteMode는 파일에 저장된 값을 Flow<Boolean>으로 꺼내온 뒤 Boolean 값의 반환이 반드시 종료된 다음에 코루틴 작업이 실행되어야 합니다. 이 때 전체 Flow 스트림을 구독할 필요가 없으므로 Flow에서 단일 String 값을 가져오도록 first를 붙여준 뒤, 반드시 값을 반환하고 종료되는 코루틴인 withContext 내부에서 실행되도록 한 것입니다.

jminie4598's profile image
jminie4598

asked

Ask a question