gpt4 book ai didi

android - DialogFragment如何影响调用activity的生命周期

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:52:29 46 4
gpt4 key购买 nike

如果我从 Activity 中启动 DialogFragment,当我关闭 DialogFragment 时会发生什么? Activity 是否经过 onResume 状态?或者调用是否像任何普通的 java 调用一样,以便在 DialogFragment 关闭之前不会执行下一行?

假设启动我的 fragment 的方法是

private void launchFragment(){
ConfirmationDialog confirm = new ConfirmationDialog();
confirm.show(getSupportFragmentManager(), "confirm");
doMoreStuff();
}

所以我的问题是双重的:

  1. 什么时候调用 doMoreStuff()?在关闭 fragment 以返回父 Activity 之前还是之后?
  2. 在我关闭 fragment 以返回到父 Activity 后,父 Activity 是否通过 onResume:这样如果我检查 fragment 更改的某些字段,我可以根据该状态在 onResume 中工作字段:

如下例所示:

@Override
public void onResume() {
super.onResume();
if(dialogFragmentChangedThis){
workSomeMore();
}
}

fragment 是用

启动的
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);

使其处于全屏模式。

最佳答案

When is doMoreStuff() called? Before or after I close the fragment to return to the parent activity?

DialogFragmentshow() 方法只是提交了一个 FragmentTransaction,它将被异步执行,因此它后面的任何方法都将是立即执行。

After I close the fragment to return to the parent activity, does the parent activity go through onResume

不,它没有,因为你的 Activity 一直在前台,因为没有其他 Activity 涉及。

通常,您将通过在 Activity 中实现回调,将回调监听器与 DialogFragment 一起使用,就像您对简单的 Fragment 所做的那样当您想传递 DialogFragment 中发生的操作的结果时,通过该接口(interface)调用您的 Activity 的方法。

关于android - DialogFragment如何影响调用activity的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944356/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com