繁体   English   中英

在意图启动时清除活动堆栈

[英]Clearing Activity Stack on Intent Start

我有一个正在编写的应用程序,以初始“登录/创建新帐户”初始屏幕开始。 在onCreate中,它检查我的SharedPreferences以查看是否存储了用户凭据。 如果是活动,则该活动将启动主要活动,从而跳过登录/创建过程。

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

我不希望用户能够返回到初始屏幕。 正如你可以看到我想要的CLEAR_TOP意图标志所建议这个 ,但它似乎并不奏效。 不知道我在想什么。

活动堆栈的当前状态

SplashActivity->MainActivity

所需的堆栈状态

MainActivity

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM