I'm having several activities in my application. and flow is very complicated. When I click the Logout application naviagates to login Screen and from there user can exit by cancel buton (calling system.exit(0)
)
when I exit or back button, system invokes an activity from stack :( how can I clear all the activities in the stack when i reach Login screen? calling finish()
is not practical as there are so many activities and some activities should no be closed when they are active such as native camera invoking activity.
validateuser logoutuser = new validateuser();
logoutuser.logOut();
Intent loginscreen = new Intent(homepage.this, Login2.class);
(homepage.this).finish();
loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(loginscreen);
Clear Activity Backstate by below code:
Done
I noted that you asked for a solution that does not rely on
finish()
, but I wonder if this may help nonetheless.I tracked whether an exit flag is raised with a static class variable, which survives the entire app lifespan. In each relevant activity's
onResume()
, useThe ExitHelper class
Let's say in mainActivity, a user presses a button to exit - you can set
ExitHelper.isExitFlagRaised = true;
and thenfinish()
. Thereafter, other relevant activities that are resumed automatically will be finished as well.