강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

jminie4598 のプロフィール画像
jminie4598

投稿した質問数

冷凍コーダーのわかりやすいModern Android Development入門

Practice9 - 自動キャッシュ整理の実装 (Worker, WorkRequest, WorkInfo)

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

作成

·

206

0

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

jetpackarchitectureandroidkotlin

回答 2

1

jminie님의 프로필 이미지
jminie
質問者

감사합니다!

1

frozencoder님의 프로필 이미지
frozencoder
インストラクター

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

jminie4598 のプロフィール画像
jminie4598

投稿した質問数

質問する