使用替换时片段不调用onPause或onStop

JWq*_*ist 7 android android-fragments back-stack fragmentmanager

我有一个奇怪的问题,当我用另一个片段替换它时,我的片段没有调用任何结束生命周期方法,如onPause和onStop.我像这样替换片段

public static void replaceFragment(Activity activity, int layoutId, Fragment fragment, String title, String shortTitle) {
    FragmentTransaction transaction = activity.getFragmentManager().beginTransaction().replace(layoutId, fragment);
    transaction.addToBackStack(title);
    transaction.setBreadCrumbTitle(title);
    transaction.setBreadCrumbShortTitle(shortTitle);
    transaction.commit();
    activity.getFragmentManager().executePendingTransactions();     
}
Run Code Online (Sandbox Code Playgroud)

我认为它是以某种方式保持我的片段活着,即使我在popBackStack之后再次替换相同的片段之后它会被显示出来然后它也会在onStart之前调用onStop吗?

JWq*_*ist 6

我解决了这个问题:)

这是因为我在平板电脑上的应用程序在一个主要片段中添加了两个片段,然后当我替换包含其他两个片段的片段时,他们的 onPause 和 onStop 没有被调用,因此通过在主要片段 onStop 中调用他们的 onStop 我解决了这个问题。

感谢所有试图提供帮助的人,我不知道我使用的方法真的是问题所在,但是子片段没有被它们的父片段破坏!