如果我从某个活动启动DialogFragment,那么当我关闭DialogFragment时会发生什么?活动是否通过onResume状态?或者是正常java调用的调用,以便在DialogFragment关闭之前永远不会执行下一行?
假设启动片段的方法是
private void launchFragment(){
ConfirmationDialog confirm = new ConfirmationDialog();
confirm.show(getSupportFragmentManager(), "confirm");
doMoreStuff();
}
所以我的问题有两个:
doMoreStuff()
?在我关闭片段以返回父活动之前或之后?如下例所示:
@Override
public void onResume() {
super.onResume();
if(dialogFragmentChangedThis){
workSomeMore();
}
}
使用
启动片段setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
以便它处于全屏模式。
答案 0 :(得分:6)
什么时候调用doMoreStuff()?在关闭片段之前或之后返回父活动?
DialogFragment
的{{1}}方法只提交一个show()
,它将以异步方式执行,因此后面的任何方法都会立即执行。
关闭片段以返回父活动后,父活动是否通过onResume
不,它没有,因为您的FragmentTransaction
一直处于前景,因为没有其他Activity
参与。
通常情况下,您将使用Activities
的Callbacks听众与简单的DialogFragment
一样,通过在Fragment
中实施回调并致电Activity
当你想要传递Activity
中发生的动作的结果时,通过该界面的方法。