I have an app that contains DrawerLayout and Navigation Component.
Listener is set with NavigationItemSelectedListener instead of the setupWithNavController because I want to handle the instances of Fragment instead of recreating/replacing over and over
When I press back in Fragment A it leaves the app in "background mode" (That's normal) and when I return to the app and go from FRAGMENT A TO FRAGMENT B it destroys the FRAGMENT A AND THE VIEWMODEL and now I can't get the instance of that fragment doing a popBackStack().
Something I noticed is that when the app goes in the background, the backstack of navController is cleaned, therefore once I get back to the app the fragment where I left (Fragment A) will be destroyed once I navigate to another fragment and I can't get back that instance.
This is gets super difficult because I just want to handle the instances of the fragments but it just creates a new one. And the popbackStack can't find the old fragment once the APP is in background so I don't know what I can do.
If I set an action in the nav graph from Fragment_A to Fragment_B, after leaving the app and re-entering and navigating to Fragment_B it appears an error: action_fragmentA_to_fragmentB cannot be found from the current destination NavGraph
I just have a custom onBackPressed in Fragment A to leave the app using.
fun defaultOnBackPressed() {
if (findNavController().popBackStack().not()) {
requireActivity().moveTaskToBack(true)
} else {
findNavController().popBackStack()
}
}
What should I do?
It's been 2 days since I've been trying to solve this, but I can't get to solve something so complex that imo should be easy. I have tried a lot of solutions. Feel free to request any code.