Kat*_*lon 8 android dialog android-layout android-fragments android-dialogfragment
如果我从一个活动启动DialogFragment,当我关闭DialogFragment时会发生什么?活动是否通过onResume状态?或者是正常java调用的调用,以便在DialogFragment关闭之前永远不会执行下一行?
假设启动我的片段的方法是
private void launchFragment(){
ConfirmationDialog confirm = new ConfirmationDialog();
confirm.show(getSupportFragmentManager(), "confirm");
doMoreStuff();
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是双重的:
doMoreStuff()召唤?在关闭片段之前或之后返回父活动?如下例所示:
@Override
public void onResume() {
super.onResume();
if(dialogFragmentChangedThis){
workSomeMore();
}
}
Run Code Online (Sandbox Code Playgroud)
片段是用.启动的
setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
Run Code Online (Sandbox Code Playgroud)
这样它就处于全屏模式.
什么时候调用doMoreStuff()?在关闭片段之前或之后返回父活动?
DialogFragment的show()方法只是提交一个FragmentTransaction,它将异步执行,因此后面的任何方法都会立即执行.
关闭片段以返回父活动后,父活动是否通过onResume
不,它没有,因为你Activity一直处于前景,因为没有其他Activities参与.
通常你会DialogFragment像使用简单Fragment的s那样使用Callbacks监听器,通过实现你的Callbacks,Activity并通过调用你Activity的方法通过该接口,当你想传递一个动作的结果时DialogFragment.