2014-11-14 41 views
-1

我想在片段中创建progressdialog,但不断显示错误是泄露了最初在此处添加的窗口com.android.internal.policy.impl.phonewindow。请帮助这个我的代码如何在内部类片段中添加进度对话框

private class ListDaftarHargaAsync extends AsyncTask<String, Void, String> { 

    @Override 
    protected void onPreExecute() { 
     progressDialog = new ProgressDialog(getActivity()); 
     progressDialog.setMessage("retrieving..."); 
     progressDialog.setIndeterminate(false); 
     progressDialog.setCancelable(false); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      modelPost.setDataVouchers(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     String result = modelPost.resultString; 
     if (result.length() != 0) { 
      progressDialog.dismiss(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     progressDialog.dismiss(); 
     getActivity().runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       fillDaftarHarga(); 
      } 
     }); 
    } 
} 
+2

哪里progressDialog.show()?并发布完整的错误。并删除progressDialog.dismiss();来自doInBackground。 '在那里onPostExceute –

+0

删除'progressDialog.dismiss();'在doInBackground – Yugesh

+0

我试过了,但仍然显示相同的错误 – Ashadi

回答

0
leaked window com.android.internal.policy.impl.phonewindow that was originally added here. 

上述错误显示,因为你是在doInBackground调用progressDialog.dismiss();

+0

我试过了,但仍然显示相同的错误 – Ashadi

+0

@Ashadi你试过了从doinbackgroud解雇) – duggu

1

检查进度对话框显示或不 ,你不能触摸UI线程在doInBackground

@Override 
    protected void onPreExecute() { 
     progressDialog = new ProgressDialog(getActivity()); 
     progressDialog.setMessage("retrieving..."); 
     progressDialog.setIndeterminate(false); 
     progressDialog.setCancelable(false); 
     progressDialog.show(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      modelPost.setDataVouchers(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     String result = modelPost.resultString; 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     if (null != progressDialog && progressDialog.isShowing()) { 
      progressDialog.dismiss(); 
     } 
     getActivity().runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       fillDaftarHarga(); 
      } 
     }); 
    } 
} 
+0

我试过了,但仍然显示相同的错误 – Ashadi

+0

progressDialog = new ProgressDialog(CLASS_NAME.this); //尝试这个 – inni

相关问题