Android asynchtask中出现异常的进度对话框

Android asynchtask中出现异常的进度对话框,android,exception,android-asynctask,progressdialog,forceclose,Android,Exception,Android Asynctask,Progressdialog,Forceclose,我正在开发一个android应用程序,在其中我使用一个异步任务,在关闭进度对话框时,一个异常正在出现,应用程序正在强制关闭 例外情况如下: 04-24 09:41:54.661: E/AndroidRuntime(1727): java.lang.IllegalArgumentException: View not attached to window manager 04-24 09:41:54.661: E/AndroidRuntime(1727): at andro

我正在开发一个android应用程序,在其中我使用一个异步任务,在关闭进度对话框时,一个异常正在出现,应用程序正在强制关闭

例外情况如下:

    04-24 09:41:54.661: E/AndroidRuntime(1727): java.lang.IllegalArgumentException: View not attached to window manager
    04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
守则:

data_insertion = new AsyncTask<Void, Void, Void>() {
  @Override
  protected void onPreExecute() {
    // TODO Auto-generated method stub             
    CommonUtility.show_PDialog(MainActivity.this);
    super.onPreExecute();
  }
  @Override
  protected void onPostExecute(Void result) {
    // TODO Auto-generated method stub
    //setting alaram for refresh api 
    CommonUtility.close_PDialog(); //*getting exception on this line* 
    Intent setalaram = new Intent(MainActivity.this, SetAlaram.class);
    startService(setalaram);
    Intent i = new Intent(MainActivity.this, PlayListActivity.class);
    startActivity(i);
    MainActivity.this.finish();
    super.onPostExecute(result);
    finish();
  }
  @Override
  protected Void doInBackground(Void...params) {
    // TODO Auto-generated method stub
    //some code 
  }
  return null;
}
}.execute(null, null, null); 

//and here is my close method for dilogue
public static void close_PDialog() {
  if (dialog != null && dialog.isShowing()) {
    dialog.dismiss();
  }
}

当任务结束并在其onPostExecute上运行时,创建它的活动(它从中获取上下文)在onPostExecute上已经被销毁


您可以这样做,或者在某个地方创建一个progressDialog实例,以便在每次需要对话框时使用,并且在活动的onDestroy()方法中,您可以取消它(以防发生类似情况)。

Post code of
CommonUtility.close_PDialog()方法。请发布logcat输出?如果删除引发异常的行,progressDialog是保留在屏幕上还是消失?在哪里实例化“dialog”对象?inside show_PDialog(main activity.this)?@Analizer我已经按照你说的做了,这次意外的异常力出现了,进度条也消失了。首先非常感谢,你能告诉我原因吗……为什么会发生这种事??
04-24 09:41:54.661: E/AndroidRuntime(1727): FATAL EXCEPTION: main
04-24 09:41:54.661: E/AndroidRuntime(1727): java.lang.IllegalArgumentException: View not attached to window manager
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:200)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.view.Window$LocalWindowManager.removeView(Window.java:432)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.app.Dialog.dismissDialog(Dialog.java:278)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.app.Dialog.access$000(Dialog.java:71)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.app.Dialog$1.run(Dialog.java:111)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.app.Dialog.dismiss(Dialog.java:268)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at commonUtilities.CommonUtility.close_PDialog(CommonUtility.java:233)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at com.walkover.filesharing.MainActivity$1.onPostExecute(MainActivity.java:55)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at com.walkover.filesharing.MainActivity$1.onPostExecute(MainActivity.java:1)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.os.AsyncTask.finish(AsyncTask.java:417)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.os.AsyncTask.access$300(AsyncTask.java:127)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.os.Looper.loop(Looper.java:130)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at android.app.ActivityThread.main(ActivityThread.java:3683)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at java.lang.reflect.Method.invokeNative(Native Method)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at java.lang.reflect.Method.invoke(Method.java:507)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-24 09:41:54.661: E/AndroidRuntime(1727):     at dalvik.system.NativeStart.main(Native Method)