如何开始活动并结束之前启动的所有其他活动

时间:2013-09-22 17:37:02

标签: android android-intent

我的软件和一个主要活动中有一个登录活动。我想要做的是启动登录活动,登录用户,然后启动主活动,并从堆栈中删除登录活动,以便用户可以通过按后退按钮来访问登录活动。我应该使用Whitch打算旗帜吗?

3 个答案:

答案 0 :(得分:2)

Intent intent = new Intent(currentClassYoureIn.this, newClassYouWantToBeIn.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // closes all activities that were started after "newClassYouWantToBeIn"
startActivity(intent);

那,或者你可以开始你的新意图,然后使用方法finish()关闭当前活动(你开始新意图):

Intent intent = new Intent(currentClassYoureIn.this, newClassYouWantToBeIn.class);
startActivity(intent);
finish(); // closes "currentClassYoureIn" and now "newClassYouWantToBeIn" is the only activity up

答案 1 :(得分:1)

好的,我最近也处理了这个问题。你需要覆盖onBackPressed()方法,以限制按下后退按钮的操作。

所以你应该做的是,在主要的活动写作中,

public void onBackPressed() {

new AlertDialog.Builder(this)
        .setTitle("Alert")
        .setMessage("Please Log out first.")
        .setpositiveButton("Ok", null)
            .create().show();
}

这样,如果没有在mainactivity页面中注销,用户就无法返回登录页面。

另请阅读使用finish()

This可能有帮助。请查看。

答案 2 :(得分:0)

这个答案最适合我希望它也可以帮你试试这个 https://stackoverflow.com/a/11308263