0

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

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

我不希望用户能够返回到初始屏幕。如您所见,我正在尝试按照CLEAR_TOP建议的 Intent 标志,但它似乎不起作用。不知道我错过了什么。

活动堆栈的当前状态

SplashActivity->MainActivity

期望的堆栈状态

MainActivity

4

2 回答 2

1

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

if (haveCredentials()) {
    Intent i = new Intent(this, MainActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    finish(); //add this!
}
于 2013-06-07T13:33:20.947 回答
0

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

于 2013-06-07T13:34:48.670 回答