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

AsyncTask 관련 질문입니다..

0 추천
private class AppTask extends AsyncTask<Void, Void, Void> {
    ProgressDialog dialog = new ProgressDialog(
            FirmUpgradeActivity.this);

    @Override
    protected void onPreExecute() {
        dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        dialog.setMessage("로딩중입니다..");
        dialog.show();

        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) {
        new Thread(new LoadFirmListThread()).start();  //FirmwareUpgrade 시작

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
            dialog.dismiss();
        
        super.onPostExecute(result);
    }
};

doInBackground에서 통신스레드를 실행하는데

스레드 실행도중에서인지... dialog.dismiss가 호출되더라구요

그래서 dialog가 띄워지지 않는 것처럼 보이는데..

디버깅해보니까 dialog.dismiss가 호출된건 확인되었습니다.

스레드가 끝났을 때 dialog.dimiss가 호출되어야 하는데 다른 방법이 있을까요?

 

 

zenojm (2,840 포인트) 님이 2017년 7월 26일 질문

1개의 답변

0 추천
 
채택된 답변
doInBackground 메소드가 이미 별도의 스레드에서 실행되고 있는데, 왜 스레드를 직접 생성해서 실행시키나요?
익명사용자 님이 2017년 7월 26일 답변
zenojm님이 2017년 7월 26일 채택됨
아...그렇군요 별도의 스레드에서 실행하는지를 모르고 사용했었네요;;
감사합니다ㅠㅠ
...