android – DialogFragment如何影响调用活动的生命周期

前端之家收集整理的这篇文章主要介绍了android – DialogFragment如何影响调用活动的生命周期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我从一个活动启动一个DialogFragment,当我关闭DialogFragment时会发生什么?活动是否通过onResume状态?或者调用是否是正常的 java调用,以便在DialogFragment关闭之前永远不会执行下一行?

假设启动我的片段的方法

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

所以我的问题是双重的:

>什么时候调用doMoreStuff()?在关闭片段之前或之后返回父活动?
>关闭片段以返回父活动后,父活动是否通过onResume:这样如果我检查片段更改了某个字段,我可以根据该字段的状态在onResume中工作:

如下例所示:

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

片段是用.启动的

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?

DialogFragment的show()方法只提交一个FragmentTransaction,它将异步执行,因此后面的任何方法都会立即执行.

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

不,它没有,因为您的活动始终处于前台,因为没有涉及其他活动.

通常,您将使用带有DialogFragments的Callbacks侦听器,就像使用简单片段一样,通过在Activity中实现Callbacks,并在想要传递DialogFragment中发生的操作结果时通过该接口调用Activity的方法.

猜你在找的Android相关文章