Я реализовал код для закрытия приложения из вторичного Activity ... но во вторичном Activity также есть фрагменты, и проблема в том, что когда я прыгнул в какой-либо фрагмент и нажал кнопку возврата, приложение сразу закрывается .. моя цель - первый фрагмент -transaction's addToBackStack
должен работать, затем приложение должно закрыться
Это код в методе UserActivity onBackPressed()
, в котором я реализовал фрагменты:
public void onBackPressed() {
DrawerLayout drawerLayout = findViewById(R.id.drawerLayout);
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
} else {
Intent intent = new Intent(UserActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
}
}
Код ниже находится в методе MainActivity onCreate()
to fini sh Activity:
if (getIntent().getBooleanExtra("EXIT",false)) {
finish();
}
и вот фрагменты, помещенные в UserActivity:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment;
switch (item.getItemId()) {
case R.id.setting:
fragment = new SettingFragment();
break;
case R.id.logOut:
SharedPreference.setLoggedIn(this,null,false);
Intent intent = new Intent(UserActivity.this,MainActivity.class);
startActivity(intent);
default:
fragment = null;
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.userFragment,fragment).addToBackStack(null).commit();
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}