2012-08-26 2 views
1

가능한 중복 :
Handler vs AsyncTask vs Thread안드로이드 비동기 작업 대 기본 자바 스레드

는 안드로이드 초보자를 오전 내 첫 번째 응용 프로그램을 개발하는 방법에 생각 ...

어떤 스레드의 종류는 UI 스레드와 별도의 프로세스를 만드는 것이 더 낫습니까?

처리기 및 메시지가있는 AsyncTask 또는 확장 스레드 클래스? "나는 그들이 너무 많은 코드 커플 링을 증가시킬 생각으로, 아, 그리고 멀리 AsyncTask를 개체를 사용에서 이동하고 있습니다."

나는이 스레드를 통해 서 갔다 .. Put an object in Handler message

사람이 있다고 말했습니다.

코드 커플 링이란 무엇입니까? Handler 및 Message 클래스와 함께 Java 스레드를 사용해야합니까, 아니면 Async 작업을 사용해야합니까?

+0

코드에서 무엇을하려고합니까? –

+0

초보자입니다. 어떤 것이 가장 좋은 방법인지 알면됩니다. AsyncTask를 사용하는 것이 다른 것보다 훨씬 쉽다는 것을 알게되었습니다. 그래서 AsyncTask를 고수 할 것입니다. – Sathesh

답변

1

이것이 첫 번째 앱이 될 것이므로이 질문을 잠시 놓아 두는 것이 가장 좋습니다. 대신 어쨌든 응용 프로그램을 작동하게 만들 수 있습니다. 그렇게하면 자신을 결정할 충분한 경험을 얻을 수 있습니다.

이 말을 가지고 있다면, AsyncTask은 백그라운드에서 무언가를 수행하고 진행 상황과 결과를 UI로 보는 것이 필요한 경우 사용하기가 더 쉬워 진 것 같습니다.

두 가지 방법 중 하나의 실제적인 문제점은 장치를 회전 할 때 UI가 재생성된다는 것입니다. 그리고 스레드/asynctask에 이전 UI에 대한 참조를 저장하고 응용 프로그램을 사용하면 충돌이 발생합니다.

+0

OK .. 초보자로서 AsyncTask로 시작하겠다. – Sathesh

1

AsyncTask는 백그라운드에서 Java의 원시 스레드를 사용합니다. 그 (것)들을 사용의 이점은 당신이 3 개의 방법을 얻는다이다 - onPreExecute, doInBackground & onPostExecute 당신을 더 쉬운시키는.

1

AsyncTask는 진행률을보고하고 결과를 UI에 게시하는 동안 작업자 스레드에서 (주 스레드 차단을 피하기 위해) 수행되어야하는 잘 정의 된 작업을위한 좋은 추상화입니다. 이러한 작업의 예는 인터넷에서 파일 다운로드, 웹 서비스 호출, 데이터베이스 쿼리 등입니다. 이러한 작업을 수행하기 위해 작업자 스레드 풀을 유지 관리합니다. AsyncTask를 사용하면 스레드를 만들고 관리하고 UI 업데이트를 UI 스레드로 보내도록 코드를 작성하지 않아도됩니다.

백그라운드 작업이 잘 정의 된 작업이 아닌 진행중인 프로세스 인 경우 AsyncTask가 적절하지 않습니다. 예 : 음악 재생, 위치 추적, 뉴스 피드 연속 다운로드 등. 이러한 경우 별도의 스레드를 만들고 관리하는 것이 적절합니다.