마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

뷰모델 메모리 해제 질문있습니다.

0 추천
1. 뷰모델은 앱이 완전히 종료 되어야만, 메모리에서 해제되는건가요?

개발자 페이지에 나와있는 뷰모델의 생명주기 그림은 분명히, 앱 종료시에만

뷰모델이 메모리에서 해제되는걸로 나오는것 같은데,

가르쳐주시는 분들은, 액티비티나 프래그먼트가 종료될때에만

뷰모델이 메모리에서 해제된다고 해서, 혼란스럽습니다.

 

2. 프래그먼트 내에서 뷰모델 사용했을때,

메인 액티비티에서 프래그먼트를 리플레이스 하면,

뷰모델도 같이 메모리에서 해제되나요?
상쾌한 (1,890 포인트) 님이 2021년 10월 11일 질문
상쾌한님이 2021년 10월 11일 수정
ViewModel 라이프사이클을 어디서 보셨나요?

https://developer.android.com/topic/libraries/architecture/viewmodel

위의 그림 말고 다른 게 더 있는지요?

위의 그림을 말씀하시는 거면, 앱 종료가 아니고 액티비티나 프레그먼트의 종료시를 말하는 겁니다.
네, 답변 감사합니다.
스파크님이 화가 나신것 같아서 더 말씀드리면,
저는 가르쳐주시는 분들이 앱의 종료를 말씀하시는건지 아니면, 액티비티의 종료만을 가르쳐 주신 것인지 혼란스럽다는 말이었습니다. 앱이 종료될때에도, 액티비티도 같이 종료되니까요.
지금까지 잘 도와주셔서 감사했습니다. 덕분에 앱 성능이 많이 좋아졌어요. ^^
전 단순히 확인하는 질문을 한 겁니다. Q&A 게시판에서 화를 낼 일이 있을까요. 모든 질문은 다 의미가 있는 거구요.
뷰모델은 액티비티나 프레그먼트가 디바이스 회전 등의 configuration change 발생해서 다시 생성(recreation)되더라고 생존을 합니다.  몰론 정상적으로 종료가 되면 같이 destroyed 되겠지요. 그런데 destory 라는 의미가 메모리에서 해제된다는 것과 동일하지는 않습니다. JVM의 GC(Garbage Collector)는 바로 종료즉시 메모리를 수집하지는 않습니다. GC는 GC 고유의 고리즘을 기반으로 메모리 수집을 하게 되어있습니다. 이 부분은 개발자가 굳이 컨트롤할 필요는 없는 부분입니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...