我在onStart中创建了一个ProgressDialog,然后在异步任务返回后,我隐藏/解除它。
当我跳转到主屏幕并返回,并将新的ProgressDialog重新实例化为变量时,稍后的代码仍会引用上次设置ProgressDialog时的旧内存地址。
我尝试了很多不同的方法,但我很难过。在第一次启动应用程序后,我无法让ProgressDialog正常运行。有人可以指导我如何解决这个问题,或建议采用不同的方法吗?
感谢。
编辑:我应该提一下,我尝试使用我最初设置的相同变量,而不是重新实例化它,但隐藏/解除没有做任何事。
在onStart()
mProgressDialog = new ProgressDialog(this);
mProgressDialog.show();
然后在我的updateMap()
中mProgressDialog.dismiss(); // Or hide()
第一次运行时效果很好。但是当活动停止并重新启动时,第二个块不会按预期执行。
编辑2:
private ProgressDialog mProgressDialog;
的onCreate()
mProgressDialog = new ProgressDialog(this);
的onResume()
mProgressDialog.show();
updateMap()
mProgressDialog.hide();
它在第一次运行时起作用,但当我跳到主屏幕并返回时,ProgressDialog从不隐藏。发生什么事了?!
答案 0 :(得分:1)
尝试将ProgressDialog变量设置为static。重新创建活动时,它应引用附加到该活动类的相同ProgressDialog,而不是该类的新实例中的新活动。