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

AsyncTask와 Thread

0 추천

download progressBar를 띄울 때

엑티비티 클래스의 이너클래스로 

 

class DownloadFileAsync extends AsyncTask<String, String, String> {

를 만들어서 하고 있는데요

 

Thread로 파일 다운받는것과 AsyncTask로 받는것과 뭐가 다른가요?

 

특정 상황마다 사용해야하는 것이 다른가요?

 

또  @Override

        protected void onPostExecute(String unused) {
        dismissDialog(progressbarType);
        }
 
여기 디스미스다이얼로그에 디프리케이티드 워닝이 뜨는데 제가 잘못쓴건가요?
윤둥이 (4,560 포인트) 님이 2013년 5월 15일 질문
취향대로 골라쓰세요..기능은 거의 똑같다고 보시면 됩니다.

3개의 답변

+1 추천
 
채택된 답변
AsyncTask는 Thread를 상속받아서 시작과 끝, 프로그레스 도중의 포인트를 오버라이드로 제공해주는 것에 불과할거에요.

쓰레드로 구현하기 귀찬고 손이많이가니깐 AsyncTask를 쓰는것도 괜찮긴 하겠지만, 소스가 지저분해지고 관리가 쉽지 않기때문에 필요한 곳에서만 쓰고 왠만하면 Thread를 사용하는게 낫지않을까 싶네요.

 

확장성이나 이식성을 보더라도 Asynctask보단 Thread가 나을듯.

 

progressDialog.dismiss() 로 하시는게 나을듯싶네요.
익명사용자 님이 2013년 5월 15일 답변
윤둥이님이 2013년 5월 15일 채택됨
+2 추천

백그라운드 스레드로 작업하는 경우 대부분

  1. 백그라운드 작업 시작 전에 무언가(작업 중 다이얼로그를 띄운다던지)를 한다.
  2. 백그라운드 작업 시작
  3. 작업이 진행되는 동안 진행상황 표시
  4. 작업이 완료되었을 때 무언가를 한다.

이런 패턴을 보이는데 이런 경우의 작업을 편하게 해주는게 AsyncTask 입니다.

잘 쓰면 쓰레드 관련 코드를 거의 쓰지 않고 실제 하려는 일이 무었인가하는 것에만 집중하여 코드를 작성하게 되어 코드 가독성이 좋아집니다.

익명사용자 님이 2013년 5월 15일 답변
+1 추천

제가 경험했을때는 안드로이드 내에서는 thread보다 AsyncTask를 사용하는편이 코드 가독성이 좋았습니다.

확장하는데도 전혀 무리 없었습니다.

 

익명사용자 님이 2013년 5월 15일 답변
...