2011-08-28 3 views
1

Android를 사용하여 SOAP 서비스에 연결하려고 시도 중이므로 SO와 ksoap2 사용에 대한 다른 웹 사이트를 읽었습니다.Android에서 SOAP 구현 권장 사항을 사용합니다.

필자도 Android in Action을 읽었으며 UI 스레드에서 장시간 실행되는 코드 (> 5 초)는 처리기 또는 서비스에서 수행되어야 함을 나타냅니다. 활동 내에서 사용하는 것과는 대조적으로 이들을 언제 사용해야하는지에 대한 권장 사항이 있습니까? SO뿐만 아니라 인터넷의 많은 예제는 Activity 내에서 SOAP 처리를 (라이프 사이클 메소드 나 이벤트 핸들러에서) 수행하지만, 제 경우에는 5 초 이상 걸리는 특정 SOAP 메소드가 있음을 알고 있습니다 .

Android Handler 또는 서비스를 사용할시기와 권장 사항은 매우 유용합니다.

답변

2

UI가 동일한 시간대의 응답에 의존하는 경우 AsyncTask 클래스를 사용하는 것이 좋습니다. AsyncTask은 그러한 장시간의 작업을 위해 설계되고 권장됩니다. 서버의 응답이 UI와 강하게 관련된다고 가정 할 때 오랜 작업이 진행되는 동안 사용자는 UI를 고정시키지 않아야합니다.

당신은 백그라운드 스레드에서 실행됩니다 doInBackground() 방법이 긴 거래를 할 수

, 당신은 UI를 업데이트 할 수 없습니다이 방법 점에 유의하고, onPostExecute()/onProgressUpdate()에서 서버의 응답과 UI를 업데이트해야합니다 .

여기을 벌써을 도입되지 않은 경우보다 AsynTask에 읽기 :

http://developer.android.com/reference/android/os/AsyncTask.html

Threading Rules

2

대신 AsyncTask를 사용하는 것이 좋습니다. 여기 찾기 : 기본적으로 http://developer.android.com/reference/android/os/AsyncTask.html

, 당신은 백그라운드 스레드에서 실행되는 doInBackground 방법에 SOAP 호출을 실행할 수 있습니다, 당신은 onPostExecute() 방법에 UI를 업데이트 할 수 있습니다, 당신이 지칠대로 지친 ANR을 피할 수있는 방법을 (안드로이드 응답 없음) 오류입니다.

0

은 AsyncTask를의 예를 들어 this에서보세요 마음을 잊지 마세요 .

구현을 시작하기 전에 Android Developers 페이지에서 AsyncTask를 적절하게 참조하는 것이 좋습니다.

모든 최고의

건배

관련 문제