0

我使用下面的代码来启动activity

Intent intent = new Intent(XXX.this, YYY.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(data);

不知为何,onResume()调用了XXX的方法。并且因为我尝试弹出一个progressDialoginside onResume(),所以出现以下错误:

`android.view.WindowLeaked: Activity XXX has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@406ca468 that was originally added here.`

在调试模式下,我breakpoint在 method 的第一行设置了 a onResume(),它永远不会停在那里,但我仍然收到上述错误。

为什么会这样?

4

1 回答 1

0

因为 onResume 是 Activity 生命周期的一部分,所以无论是否是第一次创建 Activity 都会调用它。如果您想在用户返回时打开一个对话框,您可能应该将该行为放在 onRestart 中,而不是 onResume 中。

编辑:没有看到您的对话框创建代码,很难说是什么导致了错误。但是,请确保您正在调用 showDialog 并从 onCreateDialog 返回创建的 Dialog,而不仅仅是在 onResume 中创建 Dialog 本身。

于 2012-06-15T17:07:59.097 回答