注销导航到上一个 Activity

Logout navigates to Previous Activity

我在导航中使用注销菜单项drawer.The应用程序的流程如下,

  1. 启动画面
  2. 登录活动
  3. ShopList 片段(Activity3 内部)
  4. 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);