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

액티비티 전환 시 파라미터 전송 방법 관련 질문입니다.

0 추천
액티비티가 두개 있습니다.

1번 액티비티는 서버로부터 회원 아이디와 이름을 받아와서 리스트 뷰로 보여주는 액티비티입니다.

2번 액티비티는 1번에서 클릭된 회원원 아이디를 서버로 질의 하고 응답받은 회원의 상세 정보들을 보여주는 액티비티입니다.

회원의 상세 정보는 2번 액티비티에서 만 사용되고, 1번 액티비티를 통해서만들어갈 수 있습니다. 때문에 전역이여야만 할 것으로 생각 되지 않습니다.

그래서 저는  1번 액티비티에서 putExtra()를 이용해 2번 액티비티로 변수를 넘겨주는 방법으로 할 줄 알았는데..

같이 작업하시는 분은 1번액티비티에서 싱글톤 객체에 회원 아이디를 넣고 2번 객체에서 꺼내서 사용하고 계십니다.

 

비슷한 상황으로 회원 가입 시

3번 액티비티에서 정보를 입력하고, 정보 입력 중에 학과를 입력할 때,

4번 액티비티로 가서 학과 리스트에서 선택받고 학과를 3번 액티비티로 넘길때도

setResult를 사용하지 않고 같은 싱글톤 객체를 사용하십니다.

 

제 생각 처럼 사용하라고 말씀을 드리고 싶은데, 제 방법이 더 낫다라고 말할 이유를 찾고 싶은데 찾을 수가 없네요.

 

제 생각이 맞는지(putExtra, setResult 메소드를 사용하는 방법)  그리고 그게 더 좋은 이유가 무엇인지 아시면 답변 좀 부탁드립니다.
익명사용자 님이 2016년 7월 22일 질문

1개의 답변

0 추천
싱글톤이라하면 static변수를 사용하고 계시겠죠?

 

http://stackoverflow.com/questions/15322508/public-static-variable-or-use-putextra-method-of-intent-class

여기를 참고해보시기 바랍니다.

 

간단하게 요약하면

'static 변수를 무분별하게 사용할경우, 메모리 누수의 원인이 될수 있다' 정도로 정리 할수 있겠네요.
모나미153 (17,540 포인트) 님이 2016년 7월 22일 답변
꼭 싱글톤을 쓰지 말라는 건 아니지만 putExtra나 setResult를 사용할수 있는 경우, 액티비티간의 실행 컨트롤이 가능하다는 뜻이기 때문에
굳이 싱글톤을 쓸 이유가 없겠죠.
넘기는 데이터가 객체고, 직렬, 역직렬화가 까다로운 경우야 쓸 수 있겠습니다만
일반적인 int, string, boolean 등의 타입인 경우 putExtra나 setResult 사용을 권장하고 있죠.
...