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

AsyncTask 실행중 앱이 멈춰버리는 현상

0 추천
public class ImgCountTask extends AsyncTask<String, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            getLoading.setVisibility(View.VISIBLE);
            getLoading.setProgress(0);
        }

        @Override
        protected String doInBackground(String... strings) {
            String obj = "empty";
            String url = "http://----------------------------------------------------";
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            HttpParams params = new BasicHttpParams();
            try {
                httpClient.getParams().setParameter("http.protocol.expect-continue", false);
                httpClient.getParams().setParameter("http.connection.timeout", 1000);
                httpClient.getParams().setParameter("http.socket.timeout", 1000);
                List<NameValuePair> nvp = new ArrayList<>();
                nvp.add(new BasicNameValuePair("---", ---));
                nvp.add(new BasicNameValuePair("---", strings[0]));
                httpPost.setEntity(new UrlEncodedFormEntity(nvp));

                HttpResponse response = httpClient.execute(httpPost);
                HttpEntity ntt = response.getEntity();
                obj = EntityUtils.toString(ntt);
            } catch (Exception e) {
                e.printStackTrace();
                onPostExecute(obj);
            }
            return obj;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            getLoading.setVisibility(View.GONE);
            Log.d("test", "POST EXCUTE : " + result);
        }

    }

 

이렇게 구성되어있구요 getLoading은 프로그래스 바 입니다.(원형)

execute 시작! 하면 프로그래스바가 돌고..1초동안 서버의 응답이 없거나, 통신이 완료되면 프로그래스바가 쏙 사라져야하는데...

execute 시작! 하면 앱이 멈췄다가 1초~2초 뒤에 AsyncTask가 종료됩니다. 프로그래스바는 당연히 나타나질 않구요..

왜 멈추는걸까요? 그 멈추는걸 방지하기 위해서 AsyncTask를 쓰는거 아닌가요 ㅠㅠ

투개월 님이 2018년 4월 9일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...