Ho avuto un problema simile, a mio caso getFragmentManager(). getBackStackEntryCount() restituiva sempre zero.
Il mio problema era che ho utilizzando frammenti di supporto:
Fragment fragment = new MyFragment();
// note getSupportFragmentManager() instead getFragmentManager()
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame, fragment)
.addToBackStack(null)
.commit();
fragmentManager.executePendingTransactions();
e ho il controllo getFragmentManager() backStackEntryCount, che restituisce sempre zero (che sta utilizzando un altro gestore frammento):
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
}
}
anziché getSupportFragmentManager, che restituisce il numero corretto:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
}
}
Spero che sia d'aiuto!
qual è il valore di init bool? – Arvis
qualunque sia vero o falso, è sempre zero. – beiliubei