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

Activity와 Fragment의 설계 차이점이 궁금합니다

0 추천

개발한 앱중에 하나가 MainActivity 하나를 두고 모든 화면을 Fragment로 구성해서 

어느 메뉴에 진입하면 MainActivity에서 해당 화면의 Fragment로 replace 해서 화면을 이동하는 식으로 

만들어 진게 있습니다.

 

그동안 만든 앱들은 화면 마다 각기 다른 Activity를 두고 인텐트 호출해서 이동하는 식이었는데 

이번에 처음으로 모든 화면을 Fragment로 구성해서 add/remove/replace 하는 방식으로 만들어 봤는데요.

그런데, Fragment로 구성한 화면들은 Backstack 관리도 너무 힘들고 화면마다 앱을 백그라운드에 내렸다 올렸다던지 푸쉬를 받는 다던지 할때 네트워크를 재요청해서 화면을 재구성하도록 하는데 

Fragment 들은 Activity에 종속되서 그런지 Activity가 onResume을 호출하면 쓸때없이 

하위 stack에 쌓인 Fragment들이 전부다 onResume이 호출되서 죄다 네트워크 요청을 하더군요 ;;; 

그래서 막 stack 쌓인 애들중에 Tag를 달아주고 Base가 되는 Fragment에서 그 이름가지고 비교하면서 얘가 지금 최상위 Fragment가 아니면 네트워크 호출 안하도록 하는데 너무 비효율적인 것 같은거에요.. 

화면마다 다른 Activity로 구성되어 있을 때는 이런 문제 없이 딱 해당 Activity만 호출했는데 말이죠.

 

그래서 궁금한게 굳이 모든 화면을 Fragment로 구성해서 설계하는게 각 화면마다 Activity를 만들어서 

설계하는거랑 뭐가 더 좋길래 이런 방식을 쓰는 것인지 궁금합니다.

 

많은 조언과 지식공유 부탁드립니다 ㅠㅠ 

너무 지식이 없어서 그런지 제 머리로는 뭐가 좋은지 도데체 이해가 안되네요 ㅠㅠㅠ 

 

익명사용자 님이 2018년 2월 27일 질문

2개의 답변

0 추천
익명사용자 님이 2018년 2월 28일 답변
2018년 2월 28일 수정
0 추천
Activity와 Fragment의 개념을 확실히 이해하는 것이 필요해 보이네요.

Activity는 사용자와 소통하기 위한 통로를 제공하는 중요한 application component중에 하나이고

Fragment는 life-cycle을 가지는 View정도 수준의 객체입니다.

Fragment는 Activity를 보충하는 기능 정도를 할뿐이지 결코 대체할 수 없습니다.

설계의 기본은 Activity에서 부터 출발하고, 그와중에 동작을 경량하고 싶은 부분이 있을때

Fragment를 일부 사용하는 것이 옳다고 생각합니다.
디자이너정 (42,810 포인트) 님이 2018년 2월 28일 답변
...