Fragment中的ProgressDialog触发host Activity的onPause方法

时间:2014-05-15 13:12:22

标签: android android-fragments android-asynctask android-activity onpause

所以我在我的代码中做了一些关于bug的研究(在异步任务的onPostExecute中称为commit,有时会抛出IllegalStateException),我发现当我从Fragment中启动异步任务时,并显示一个进度对话框,我的Activity调用他的onPause方法,该方法在我的片段中级联到相应的onPause。我已经查看了API,但是没有找到答案。为什么在我的活动中调用onPause?活动不一定是进入后台的吗?

1 个答案:

答案 0 :(得分:0)

当您的活动转到后台时,会调用onStop()方法。但是,当您显示对话框时,活动不在视图的顶部,因此会调用onPause()方法。

如果你想在onPause()方法中做某些你想要显示你的对话框时不应该执行的东西,那么你需要设置一个标志,并且只有在执行该标志时才执行该代码是的:

@Overrides
public void onPause() {
    super.onPause();
    if (myFlag) {
        myMethod();
    }
}

您在显示对话框时以及解除对话时切换标记。