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

AsynTask와 Activity사이에 객체넘기기의 바람직한 방법이 궁금합니다

0 추천
안드로이드 개발을 하면서 가지게됀  의문점이 있습니다.

자바 쪽에 더가까운 질문인거 같기도하고..

 

AsynTask를 사용시

1) doInBackground에서 변경된값을 return해주고 onPostExecute에서 사용하는 방법이 구현한것

2) class 내부에 멤버 변수를 설정하고 doInBackground()에서 변경한 후 onPostExecute에서 사용하는것

 둘다 동일한 결과를 도출하는데 무슨 차이가 있는지 궁금합니다.

 

Activity호출 시 객체를 넘겨주고 싶을때

1) Intent.putExtra에 객체를 serializable이나 parcelable 사용하여 넘겨주는 것

2)공용적으로 사용할 클래스에 static 으로 객체를 만들어서 호출된 Activity에서 그냥사용하느것

 이또한 둘다 동일한 결과를 도출하는데 무슨 차이가 있는지 궁금합니다.

 

먼가 느낌상 두상황다 1)번이 더 바람직한 구조인거 같기는한데 2)번이 더 적용하기엔 편하더군요ㅎ;
익명사용자 님이 2014년 5월 29일 질문

2개의 답변

0 추천
1번이 바람직 하죠 ㅎㅎ

프로그램이 커지면 안정성이나 그런 문제가 발생하기 쉽겠죠~

편하다고 static 남발은..ㅠㅠ
노예의집 (23,370 포인트) 님이 2014년 5월 29일 답변
AsynTask같은 경우 한번 사용하고 garbage collector가 메모리에서 삭제할 거같은데 첫번째 질문같은 경우는 문제가 없지 않을까요?
0 추천
모두 1번의 경우가 바람직합니다. 일단 static자체가 메모리에 계속 상주해 있습니다. static이 많아질수록 기본적으로 차지하는 메모리가 늘어나죠. 또한 아무리 공용적으로 사용한다 하더라도 값이 의도치 않게 변경되어 오류가 발생하면 오류 수정하기가 꽤나 번거롭습니다. 단순 컴파일 오류가 아닌 논리 오류기 때문에 탐색해가며 찾아야 합니다. 이러저러한 이유로 static이나 전역변수는 최소화 하는 것이 좋죠.
YeonMin (17,860 포인트) 님이 2014년 5월 29일 답변
...