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

[Android] AsynctaskLoader 를 ViewModel 을 활용한 기법으로 대체 가능한지 알고싶습니다

0 추천
데이터를 db를 안거치고 앱이 회전해도 유지하는방법은

크게

 

Loader 를 활용한방법과

 

ViewModel + liveData를 활용한 방법 두가지라고 볼 수 있겠는데

 

직장에서 Loader 를 활용하고 있었는데 그게 전부 deprecated가 되어

ViewModel + liveData를 활용한 방법으로 대체가 가능한지  

알아보는 중입니다.

너무 복잡해서 냅둘까 하다가

액티비티 몇개에 걸쳐 deprecated  되어있어 고칠 방법을 생각하고 있습니다.

이에 대해 자세히 나와있는 곳이 있을까요 ㅠ

 

두기능이 거의 같은 기능으로 봐도 무방할까요??
stringboot (260 포인트) 님이 2021년 2월 18일 질문

1개의 답변

0 추천
 
채택된 답변
최근에 Jetpack 뷰상태 복구를 지원하기 위해 SaveStateHandle 이 추가 되었습니다.

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

기본적으로는 LiveData를 담은 hashmap같은 겁니다. 최근의 안드로이드 아키텍쳐는 SingleActivity로 가고 있고요, ViewModel에 상태를 저장했다가 복구해주도록 권장하고 있습니다. 근데, 이게 생각보다 간단하지가 않아요. 심플한거는 쉬운데, 스크롤 포지션이라던가 이런 거를 기억해야 하는 거면 좀 복잡해 집니다. ViewModel에서 보관할 데이터를 어떤 구조로 가져가야 하는지도 화면에 따라 고민을 해야합니다.

결론적으로는 뷰상태 복구를 위해 ViewModel + LiveData를 사용할 수 있습니다. 그리고 그게 최근의 권장사항입니다.
spark (224,800 포인트) 님이 2021년 2월 19일 답변
stringboot님이 2021년 2월 22일 채택됨
...