PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/04/28 23:48:14
Name F.Nietzsche
Subject [질문] 안드로이드 네트워크 프로그래밍 질문입니다.
안드로이드 프로그래밍 초보입니다.

안드로이드에서는 네트워크 호출시 무조건 별도 스레드를 만들어야 하는데요.

보통은 스레드가 실행을 끝낸 후에 Activity 내의 값을 갱신하고 합니다.

현재 어려움을 겪고 있는 부분은 Activity 내에서 바로 네트워크를 호출하는 것이 아니라

Activity 내에서 클래스를 이용해 서비스를 호출하고, 호출된 서비스 안에서 네트워크를 사용합니다.

예를 들어,

MainActivity {

Service svc=new Service();
String result=svc.getResponse();
...
}

class Service {

public String getResponse() {
  String response=HttpClient...
  return response;
}
}

이런 구조를 가지고 있을 때 Service 클래스 안에서 어떻게 스레드를 생성해야
MainActivity로 response 값을 돌려줄 수 있을까요?
스레드가 네트워크 동작을 끝내는 시점에 return response가 실행되어야 하는데,
  onPostExecute(Result result) 안에서 return response를 호출할 방법이 마땅치 않네요.

안드로이드 전문가 분들의 답변 부탁 드립니다.



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
냐옹이
16/04/29 00:21
수정 아이콘
. 액티비티 메서드를 직접 호출
class SomeAsyncTask ... {
SomeActivity activity;

public SomeAsyncTask(Context context) {
this.activity = (SomeActivity)context;
}

@Override
protected void onPostExecuteInternal(...) {
this.activity.doSomething();
}
}

.혹은 무언가 콜백스럽게 구현
.하지만 다 됐고 retrofit 쓰세요. retrofit 짱짱맨
arq.Gstar
16/04/29 03:09
수정 아이콘
sercice클래스는 안드로이드의 service컴포넌트와 상관 없는건가요?

방법은 많습니다.
액티비티의 레퍼런스를 가지고있어도 되구요
콜백객체를 서비스클래스에 넣어줘도 되구요
레퍼런스 해지만 잘하시면 됩니다.

또는 broadcastreceiver를 사용하셔도 구현이 가능합니다. 성능이 좀 들어서 그렇지 오히려 안드로이드를 비롯한 여타 어플리케이션 설계시에 구조적인 면으로 보자면 좋은 방식입니다.

방법은 여러가지인데요..
회사의 업무레벨 아니고 초급레벨에선 이정도면 적절한 솔루션일것 같습니다.
F.Nietzsche
16/04/29 12:11
수정 아이콘
답변 주신분들 감사합니다. 일단은 액티비티 내에서 스레드를 호출하고, 그 스레드 안에서 서비스를 호출하도록 설계해봤습니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
82150 [질문] [오디오/PC] 두개의 우퍼를 동시에 사용가능한가요? [2] 거신3297 16/04/29 3297
82149 [질문] 알뜰폰에 대해 질문드립니다 [2] 피오라1686 16/04/29 1686
82148 [질문] 부분으로 전체를 알아내는 과정.. [5] 다크템플러1624 16/04/29 1624
82147 [질문] 가장 잘 맞는 맞춤법 검사기는? [4] cs2193 16/04/29 2193
82146 [질문] 웹 브라우저, 멀티 탭, 이미지 일괄 저장 확장 CLAMP 가능빈가1624 16/04/29 1624
82145 [질문] [디아3/지메일] 관련 두가지 질문입니다... [4] 비둘기야 먹자1494 16/04/29 1494
82144 [질문] 아우렐리온이 다이아구간에서 미친승률을 보이고있습니다. [12] 정공법2761 16/04/29 2761
82143 [질문] [소설] 호랑이 나오는 판타지 소설인데 제목이 생각이 나지 않습니다. [6] HesBlUe3421 16/04/29 3421
82142 [질문] 이하이 어떤 목소리 스타일이 더 좋으신가요? [9] 늘새롭게하소서2295 16/04/29 2295
82141 [질문] [LOL] 솔랭과 경기에서의 시비르의 선호? [26] 리니시아3325 16/04/29 3325
82140 [질문] 청첩장 질문드립니다. [1] 1377 16/04/29 1377
82139 [질문] [LOL] 4대 5 게임에서 서폿이 튕길경우 정글은 어느 라인에 힘을 실어주는 게 맞을까요? [29] 코로보클4116 16/04/28 4116
82138 [질문] 도나우 인셀 페스트에 대해 알고 싶어여~!!! [2] 김성복3172 16/04/29 3172
82137 [질문] 회사동기 축의금 내야할까요?? [24] 박보영6459 16/04/29 6459
82136 [질문] [CK2] 자문회 권한 부여 관련해서.. [1] 기린어부최고시더2270 16/04/29 2270
82135 [질문] [LOL] 챌린저스 코리아 스탯 볼 수 있나요? [2] 한아1529 16/04/29 1529
82134 [질문] 의림지, 박달재, 배론성지 모두 볼만 한가요?(+ 제천, 단양, 문경새재 관광 등) [7] 미남주인2337 16/04/29 2337
82133 [질문] (스포 유) 시빌워 질문입니다 [4] 마션2444 16/04/29 2444
82132 [질문] 텀블러에 냄새 안 배기는 차가 있나요? [6] 총사령관2558 16/04/29 2558
82131 [질문] 기업 구조조정에 대한 질문드립니다. 경제학도분들 도와주세요~ [2] 김여유1738 16/04/29 1738
82130 [질문] 안드로이드 네트워크 프로그래밍 질문입니다. [3] F.Nietzsche1744 16/04/28 1744
82129 [질문] 베이컨 보관방법과 유통기한 질문드립니다. [3] No.1010194 16/04/28 10194
82128 [질문] 훈제 닭가슴살이 낫나요? 수비드 닭가슴살이 낫나요? [12] 24077 16/04/28 4077
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로