注销导航到上一个 Activity
Logout navigates to Previous Activity
我在导航中使用注销菜单项drawer.The应用程序的流程如下,
- 启动画面
- 登录活动
- ShopList 片段(Activity3 内部)
- MainActivity(我在导航抽屉中有注销菜单项)。
如果我按注销,我已经编写了导航 LogInActivity 的代码。
但是移动到LogOut-->LogInActivity-->ShopList-->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);
我在导航中使用注销菜单项drawer.The应用程序的流程如下,
- 启动画面
- 登录活动
- ShopList 片段(Activity3 内部)
- MainActivity(我在导航抽屉中有注销菜单项)。
如果我按注销,我已经编写了导航 LogInActivity 的代码。
但是移动到LogOut-->LogInActivity-->ShopList-->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);