繁体   English   中英

不会调用onResume片段方法

[英]onResume fragment method not being called

我有一个活动Activity1,有2个片段。 一切正常,但我有一个问题:

当我退出当前活动- 活动1 - (不调用finish ()并转到另一活性2,然后我点击后退按钮上的最后一个活动我回去的活性1和此onResume方法被执行

onResume Activity1代码:

@Override
protected void onResume () {
    super.onResume ();
    fragmentManager.beginTransaction ().replace (
        R.id.my_frame_container, 
        fragmentFactory.getFragment (Fragment1)
    ).commit ();
}

onResume Fragment1代码:

@Override
public void onResume () {
    super.onResume ();

    Log.e ("onResume ", " Yes ");
}

文档 :在onResume片段的方法,当被叫onResume活动的方法太。

但是,在我的情况下,返回活动时未调用Fragment的onResume。

您知道调用活动的onResume时如何执行片段代码吗? 谢谢。

由于Fragment.onResume绑定到包含活动的Activity.onResume ,因此在片段之间进行切换时不会调用此方法,因此您需要使用OnBackStackChangedListener自己调用它,如下所示

getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
    public void onBackStackChanged() {
        FragmentManager fm = getSupportFragmentManager();
        if (fm != null) {
            int bseCount = fm.getBackStackEntryCount();
            if (bseCount > 0) {
                Fragment fragment = fm.getFragments().get(bseCount - 1);
                fragment.onResume();
            }
        }
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM