杀死所有活动后如何注销?

时间:2015-07-08 11:57:07

标签: android android-navigation

在我的应用程序中,我有以下过程来登录用户:

  • 用户在MainActivity上输入其凭据,并使用该代码重定向到HomeActivity进行导航:

    Intent accueilIntent = new Intent(getApplicationContext(), HomeActivity.class);
    accueilIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK
                           | Intent.FLAG_ACTIVITY_NEW_TASK);
    finish();
    startActivity(accueilIntent);
    
  • 当用户在HomeActivity时,他可以通过注销按钮注销。由于事件被触发,我想杀死所有活动并将用户重定向到登录活动(MainActivity)。因此,对事件触发的代码如下:

    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_CLEAR_TOP
                        | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(intent);
    
  • 用户被重定向到MainPage。然后当我按下主页按钮返回Android主屏幕然后我回到应用程序时,会出现右MainActivity。但是,当我按下本机后退按钮返回到Android主屏幕然后我回到应用程序时,HomeActivity出现(之前应该销毁的那个)而不是MainActivity

有人能告诉我为什么在这种情况下我会回到HomeActivity而不是MainActivity吗?

2 个答案:

答案 0 :(得分:2)

1]在finish()

之前添加startActivity()

2]添加FLAG_ACTIVITY_NO_HISTORY标志。

Intent intent = new Intent(mContext, MainActivity.class);
                                intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
                                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                startActivity(intent);

答案 1 :(得分:0)

如果您希望用户在HomeActivity上按下按钮时返回MainAcitvity,则HomeActivity的父级应为MainActivity。

在您的manifest.xml文件中,在HomeActivity的标签中添加以下内容:

<activity
            android:name=".HomeActivity"
            android:parentActivityName=".MainActivity" > 

....
</activity>