所以我在我的代码中做了一些关于bug的研究(在异步任务的onPostExecute中称为commit,有时会抛出IllegalStateException),我发现当我从Fragment中启动异步任务时,并显示一个进度对话框,我的Activity调用他的onPause方法,该方法在我的片段中级联到相应的onPause。我已经查看了API,但是没有找到答案。为什么在我的活动中调用onPause?活动不一定是进入后台的吗?
答案 0 :(得分:0)
当您的活动转到后台时,会调用onStop()
方法。但是,当您显示对话框时,活动不在视图的顶部,因此会调用onPause()
方法。
如果你想在onPause()
方法中做某些你想要显示你的对话框时不应该执行的东西,那么你需要设置一个标志,并且只有在执行该标志时才执行该代码是的:
@Overrides
public void onPause() {
super.onPause();
if (myFlag) {
myMethod();
}
}
您在显示对话框时以及解除对话时切换标记。