注销导航到上一个活动

时间:2016-04-04 12:41:22

标签: android navigation-drawer logout

我在导航抽屉中使用LogOut menuitem。应用程序的流程如下,

  1. 闪屏
  2. LogInActivity
  3. ShopList Fragment(活动3内)
  4. MainActivity(这里我在导航抽屉中有LogOut菜单项。)
  5. 如果按LogOut,我已编写代码来导航LogInActivity。

    但它转移到 LogOut - > LogInActivity - > ShopList - > LogInActivity

    LogOut Code如下,

    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();
    
            }
    

3 个答案:

答案 0 :(得分:1)

尝试将setFlags更改为addFlags

答案 1 :(得分:1)

这将清除堆栈中所有先前的活动

Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(moveToMain);

答案 2 :(得分:1)

试试这个,

Intent moveToMain = new Intent(context, LogInActivity.class);
moveToMain .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |  Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(moveToMain);