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

프래그먼트 호출 시, arguments 대신 클래스 내부 변수 사용

0 추천

안녕하세요

프래그먼트로 데이터 전달 시,

기본적으로는 arguments를 사용하는데 arguments 대신에 해당 프래그먼트 내부 변수를 조작해도 차이가 없나 싶어서 질문 드립니다.

이런식으로 사용하고 있는데 별도의 문제가 없을 지

아니면 arguments 나  Dagger 등의 라이브러리를 사용하는게 보다 바람직한지 여쭙고 싶습니다.

서한 (330 포인트) 님이 2021년 11월 29일 질문

1개의 답변

0 추천
 
채택된 답변
결론은 argument를 사용하라는 겁니다. 먼저 아래 링크를 눌러서 제가 올려놓은 관련  영상을 확인해 보세요.

https://imgur.com/a/LgzY7IG

첫번째 동작은 "With Arguments" 버튼을 누른 후 Profile화면으로 이동한 후 디바이스를 회전합니다. 원래 있던 내용이 그래도 남아 있습니다.

두번째는 "Without Arguments"버튼을 누른 후 Profile화면으로 이동합니다. 이 때는 디바이스를 회전할 경우 있던 데이터가 사라집니다.

둘의 차이점을 짐작하시겠죠?

 두번째 동작처럼, Arguments를 사용하지 않고 프레그먼트의 멤버를 직접 설정할 경우는 디바이스 회전같이 프레그먼트가 다시 생성될 경우에 가지고 있던 데이터를 복구해 주지 않습니다. 첫번째와같이 Argments 를 사용하면 다시 복구해 주죠.

이 디바이스 회전과 같은 걸 Configuration change라고 부르는데, 개발자 문서에 이걸 핸들링 할 수 있는 방법들이 나옵니다.

https://developer.android.com/guide/topics/resources/runtime-changes
spark (105,040 포인트) 님이 2021년 11월 29일 답변
서한님이 2021년 11월 30일 채택됨
...