Java .finish()在嵌套的if语句中不起作用
由于某些原因,我无法使用.finish()在嵌套的if语句中结束我以前的活动Java .finish()在嵌套的if语句中不起作用,java,android,android-studio,Java,Android,Android Studio,由于某些原因,我无法使用.finish()在嵌套的if语句中结束我以前的活动 if (id == R.id.nav_menu) { MenuFragment menuFragment = MenuFragment.newInstance("", ""); FragmentManager manager = getSupportFragmentManager(); manager.beginTransaction().replace(
if (id == R.id.nav_menu) {
MenuFragment menuFragment = MenuFragment.newInstance("", "");
FragmentManager manager = getSupportFragmentManager();
manager.beginTransaction().replace(
R.id.layout_for_fragment,
menuFragment
).commit();
} else if (id == R.id.nav_report) {
if(status == 1){
SharedPrefManager.getInstance(getApplicationContext()).logout();
getApplicationContext().finish();
startActivity(new Intent(getApplicationContext(), LoginActivity.class));
}
}
getApplicationContext().finish()代码>它是上下文。使用ClassNameYourActivity.this.finish()甚至不应该编译的代码>。如果此代码在活动中,只需调用this.finish()
,如果您使用getApplicationContext()创建新的意图,则需要将flag设置为->Intent.flag\u Activity\u new\u task只要您在活动主类中,只需调用finish并在内部类中调用MyActivity.this.finish()!