我有一个类似的问题,在我的情况下 getFragmentManager().getBackStackEntryCount() 总是返回零。
我的问题是我使用了支持片段:
Fragment fragment = new MyFragment();
// note getSupportFragmentManager() instead getFragmentManager()
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame, fragment)
.addToBackStack(null)
.commit();
fragmentManager.executePendingTransactions();
我检查了 getFragmentManager() backStackEntryCount,它总是返回零(它使用另一个片段管理器):
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ) {
getFragmentManager().popBackStack();
}
}
而不是getSupportFragmentManager,它返回正确的数字:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0 ) {
getSupportFragmentManager().popBackStack();
}
}
希望能帮助到你!