注销导航到上一个活动



我正在使用导航抽屉中的"注销"菜单项。应用程序的流程如下,

  1. 启动屏幕
  2. 登录活动
  3. 购物清单片段(活动内部3)
  4. 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);

相关内容

最新更新