清除Intent Start上的活动堆栈

时间:2013-06-07 13:27:56

标签: java android android-intent

我有一个我正在编写的应用程序,从初始登录/创建新帐户启动画面开始。在onCreate中,它检查我的SharedPreferences以查看是否存储了用户凭据。如果他们是活动,则启动对跳过登录/创建过程的主活动的意图。

if (haveCredentials()) {
    Intent i = new Intent(this, MainActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
}

我不希望用户能够返回启动画面。正如您所看到的那样,我正在尝试this建议的CLEAR_TOP Intent标志,但它似乎不起作用。不确定我错过了什么。

活动堆栈的当前状态

SplashActivity->MainActivity

预期的筹码状态

MainActivity

2 个答案:

答案 0 :(得分:1)

您是否尝试完成当前的活动?

if (haveCredentials()) {
    Intent i = new Intent(this, MainActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    finish(); //add this!
}

答案 1 :(得分:0)

只需在finish()之后使用startActivity(),这样当按下后退按钮时,就不会显示上一个活动。