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

ProgressDialog가 dismiss되지 않습니다.

0 추천
if (!new File("/sdcard/tnr/receive/" + item_name + "/tnr_contents.zip").exists()) {

            RequestParams params = new RequestParams();
            params.put("mod", "down");
            params.put("item_num", item_num);

            shopHttpClient = new com.loopj.android.http.AsyncHttpClient();
            shopHttpClient.post(Constant.SERVER_URL + "shop_down.php"
                    + "?item_num=" + item_num, params, new JsonHttpResponseHandler() {

                @Override
                public void onStart() {
                    super.onStart();

                }

                @Override
                public void onFailure(Throwable e, JSONObject errorResponse) {
                    super.onFailure(e, errorResponse);
                    Log.d(Constant.LOOPJ_TAG, errorResponse.toString());
                }

                @Override
                public void onFinish() {
                    super.onFinish();


                }

                @Override
                public void onSuccess(JSONObject response) {
                    super.onSuccess(response);

                    Log.d("JsonObject", response.toString());

                    try {

                        JSONObject jsonObject = new JSONObject(response.toString());
                        String item_src = jsonObject.getString("item_src");

                        /**
                         * Download contents zip file
                         */
                        String[] allowedTypes = new String[] {
                                "application/zip", "image/png"
                        };

                        // download binary data;
                        new com.loopj.android.http.AsyncHttpClient().post(Constant.SERVER_URL + item_src, new BinaryHttpResponseHandler(allowedTypes) {

                            ProgressDialog progressDialog = new ProgressDialog(getActivity());

                            @Override
                            public void onStart() {
                                super.onStart();
                                Log.d(Constant.LOOPJ_TAG, "onStart");

                                if (!progressDialog.isShowing()) {

                                    progressDialog.show(getActivity(), "", "Contents downloading...", true);
                                    progressDialog.setCancelable(true);

                                }

                            }

                            @Override
                            public void onSuccess(byte[] binaryData) {
                                super.onSuccess(binaryData);
                                Log.d(Constant.LOOPJ_TAG, "onSuccess");

                                Utils.getDir("/tnr/receive/" + item_name);

                                try {
                                    FileOutputStream outputStream = new FileOutputStream(new File("/sdcard/tnr/receive/" + item_name + "/tnr_contents.zip"));
                                    outputStream.write(binaryData);
                                    outputStream.close();
                                } catch (FileNotFoundException e) {
                                    e.printStackTrace();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }

                                if (new File("/sdcard/tnr/receive/" + item_name + "/tnr_contents.zip").exists()) {
                                    try {
                                        ZipManager.unzip("/sdcard/tnr/receive/" + item_name + "/tnr_contents.zip", "/sdcard/tnr/receive/" + item_name + "/", false);

                                        Log.d("ZipManager", "Complete");

                                    } catch (Exception e) {
                                        e.printStackTrace();
                                    }
                                }

                                progressDialog.hide();
                                progressDialog.dismiss();
                            }

                            @Override
                            public void onFailure(int statusCode, Header[] headers, byte[] binaryData, Throwable error) {
                                super.onFailure(statusCode, headers, binaryData, error);

                            }

                            @Override
                            public void onProgress(int bytesWritten, int totalSize) {
                                super.onProgress(bytesWritten, totalSize);

                            }

                            @Override
                            public void onFinish() {


                            }
                        });


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            });

안녕하세요, 현재 loopj의 android-async-http를 사용해서 zip 파일을 다운로드받는 걸 구현하고 있는데요. 기능 자체는 다 구현했는데 ProgressDialog가 이상하게 dismiss되지 않네요. new AsyncHttpClient 에서 onFinish에도 해보았는데 안되는군요. 어떻게 해야할까요?

익명사용자 님이 2014년 3월 21일 질문

답변 달기

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