使用碎片时按下后退按钮时调用OnResume

Rav*_*rma 4 android fragment

我像这样添加第一个片段

            FragmentManager fm = SliderActivity.this
                    .getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Fragment fragment = null;
            fragment = new HomeFragment();
            ft.add(R.id.content_fragment, fragment, "Home");
                ft.addToBackStack("Home");
                ft.commit();
Run Code Online (Sandbox Code Playgroud)

和第二个片段

            FragmentManager fm = SliderActivity.this
                    .getSupportFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            Fragment fragment = null;
            fragment = new HomeFragment();
            ft.add(R.id.content_fragment, fragment, "About");
            ft.addToBackStack("About");
            ft.commit();
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我按下AboutFragment(第二个)的按钮,然后如何调用HomeFragment的方法(第一个)

            onResume() is not fired which is creating problem
Run Code Online (Sandbox Code Playgroud)

Kus*_*hal 5

我发帖迟到,但我认为这对其他人有用

虽然我们使用add()Fragment事务,但onResume()不会在Source片段上调用.只有Destination片段才会获得onResume()回调

但是使用这种方式,我们可以实现onResume()Source片段的回调:

在Host Activity中添加它 onBackPressed()

@Override
public void onBackPressed() {
    getSupportFragmentManager().getFragments()
                .get(getSupportFragmentManager().getBackStackEntryCount() - 1).onResume();
    super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)

注:请确保您有人称addToBackStack()commit()

此代码将onResume()回调Source片段

谢谢