如何关闭其他类中的当前对话框 - Android

问题描述:

我有一个自定义对话框,从中启动BackgroundWorker异步任务,并且我想关闭BackgroundWorker后执行中的当前对话框,但我不知道如何获取当前对话框,因为我在另一个类中创建了它。如何关闭其他类中的当前对话框 - Android

非常感谢。

+0

您可以在该类中调用解除方法 –

+0

确保在关闭活动之前关闭对话框,否则您将面临'android.view.WindowLeaked'异常。 –

+0

dimiss()就足够onPostExecute – Qasim

如果您要访问您的对话框(DialogFragment扩展我猜)你有很多方法:

a)使您的BackgroundWorkerAsyncTask成为您的DialogFragment的内部类,以便能够访问您父级的属性。如果你在其他类中需要它(这就是为什么我认为你使它成为一个外部类),你可以在你的DialogFragment中有你自己的内部AsyncTask类,并从你的BackgroundWorkerAsyncTask中扩展它。

c)从您的BackgroundWorkerAsyncTask构造函数中传递您想要管理的对话框,并在您的postExecute中将其解除。

选择任何适合您的需求。

只需使用:

alertDialogue.dismiss(); 
+0

但如何将alertDialogue与我目前打开的自定义对话框相链接? –

+0

发布您的代码.. –

+0

不需要我用另一个解决方案解决问题,我刚刚在我的BackgroundWorker中传递了我的Dialog的构造函数。谢谢 –

您可以通过不同的方式做到这一点。

  1. 通过对话框对象中的AsyncTask构造和使用该参考将其关闭。
  2. 传递类引用,并与refernce调用类的方法和方法中包含对话框驳回代码