我正在使用导航抽屉中的"注销"菜单项。应用程序的流程如下,
- 启动屏幕
- 登录活动
- 购物清单片段(活动内部3)
- MainActivity(此处导航抽屉中有"注销"菜单项)
如果我按LogOut,我已经编写了导航LogInActivity的代码。
但它移动到注销-->登录活动-->商店列表-->登录活动
注销代码如下,
if(id == R.id.nav_logout) {
commonUtil.dbUtil.open();
commonUtil.dbUtil.LogOut();
Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
moveToMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(moveToMain);
MainActivity.this.finish();
}
工作良好:(将setFlags更改为addFlags后)
if (id == R.id.nav_logout) {
commonUtil.dbUtil.open();
commonUtil.dbUtil.LogOut();
Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(moveToMain);
MainActivity.this.finish();
}
尝试将setFlags
更改为addFlags
这将清除堆栈中所有以前的活动
Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(moveToMain);
试试这个,
Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(moveToMain);