Нарвался на багу в
https://github.com/moxy-community/Moxy/blob/develop/moxy-androidx/src/main/java/moxy/MvpAppCompatFragment.javaДля воспроизведения:
1. Activity - FullScreenFragment1
Выполняем такую транзакцию
fragmentTransaction
.replace(fragmentContainerId, FullScreenFragment2, screen.screenKey)
.addToBackStack(screen.screenKey)
.commit()
2. Activity - FullScreenFragment2
Здесь свернуть приложение и вернуться в него
Потом очищаем все фрагменты и переходим куда-нибудь на другой фрагмент
По итогу получаем такой лог для FullScreenFragment1:
onStart()
bindView()
onResume()
onPause()
onSaveInstanceState(Bundle[{}])
onStart()
bindView()
onResume()
onPause()
onSaveInstanceState(Bundle[{}])
onDestroy() isActivityFinishing: false, isRemoving: true isStateSaved: true
И вот этот workaround
// When we rotate device isRemoving() return true for fragment placed in backstack
//
http://stackoverflow.com/questions/34649126/fragment-back-stack-and-isremoving if (isStateSaved) {
isStateSaved = false;
return;
}
Не дает вызвать getMvpDelegate().onDestroy()