Asynctask永远不会死

时间:2013-05-19 14:25:58

标签: android android-asynctask

我使用asynctask来显示来自json的数据,但asynctask显示加载永不死亡,没有错误但加载和加载此代码doInBackground函数

@Override
protected void onPreExecute() {
    progressDialog.show();
}

@Override
protected Integer doInBackground(String... arg0) {
    // check for login response
            // Creating JSON Parser instance
            JSONParser jParser = new JSONParser();
            //DatabaseHandler db = new DatabaseHandler(
                //  activity.getApplicationContext());

            // getting JSON string from URL

            JSONObject json = jParser.getJSONFromUrl(URL+id_user);

            try {
                if (json.getString(KEY_SUCCESS) != null) {
                    String res = json.getString(KEY_SUCCESS);

                    if(Integer.parseInt(res) == 1){
                        // Getting Array of Following
                        user = json.getJSONArray(KEY_USER);

                        // looping through All Following
                        for (int i = 0; i < user.length(); i++) {
                            JSONObject c = user.getJSONObject(i);

                            // Storing each json item in variable
                            nama = c.getString(KEY_NAMA);
                            instansi = c.getString(KEY_INSTANSI);
                            status = c.getString(KEY_STATUS);
                            responseCode = 1;

                        }
                        } else{
                            responseCode = 0;
                        }
                    }

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

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

                return responseCode;
            }

@Override
protected void onPostExecute(Integer responseCode) {
    if (responseCode == 1) {
        headerNama = (TextView)activity.findViewById(R.id.headerNama);
        headerInstansi = (TextView)activity.findViewById(R.id.headerInstansi);
        buttonStatus = (Button)activity.findViewById(R.id.buttonStatus);
        headerNama.setText(nama);
        headerInstansi.setText(instansi);
        buttonStatus.setText(status);
    }else {
        progressDialog.dismiss();
        activity.showDashboardError(responseCode);

    }
}

我认为doinbackground没有问题,请帮助谢谢

1 个答案:

答案 0 :(得分:0)

您应该dismiss dialog喜欢:

if (progressDialog.isShowing()) {
     progressDialog.dismiss();      
}