2015-10-14 63 views
0

我的应用程序中存在ProgressDialog问题。 我在后台执行一些任务,并使用处理程序将操作通知给我的Activity。 有时候,并非总是如此,当我试图表明我的对话框的应用程序崩溃并出现此异常:在Android中显示对话框产生崩溃

android.view.windowleaked 

对话的方式展开:

try { 
    pd = new ProgressDialog(VoiceAcquisitionActivity.this); 
    pd.setMessage("blablabla"); 
    pd.setCancelable(false); 
    pd.show(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

我读过这个例外是正常的在.dismiss()操作但是在.show() ??

我该如何避免这个问题?

感谢

+2

是您的活动运行? – Blackbelt

+0

是的,因为此代码在活动 – user3086708

+0

中被调用,对不起,您是否可以删除我的软件包名称?谢谢 – user3086708

回答

1

安全你可以包装在类似的代码块你的对话逻辑:

if(!isFinishing()){ 

     pd = newProgressDialog(VoiceAcquisitionActivity.this);         
     pd.setMessage("Loading message"); 
     pd.setCancelable(false); 
     pd.show(); 
    } 
+0

我不认为这个解决方案修复了,因为活动没有完成,当收到此消息 – user3086708

+0

@ user3086708这是一个安全检查,因为,如果您的活动正在完成,它不会尝试显示对话框没有上下文的活动。看来问题在于你的活动崩溃了,你试图在这次崩溃期间显示一个对话框。请发布完整的堆栈跟踪 –