调用一个活动并从堆栈中删除调用活动?

时间:2014-09-18 16:47:05

标签: android android-intent stack

我有一个活动我的应用程序的主要活动,但可通过快捷方式启动。直接从快捷方式启动时,它接受一些用户输入,然后使用以下代码启动MainActivity:

    Intent myIntent = new Intent(
            QuickTimerActivity.this.getBaseContext(),
            MainActivity.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    QuickTimerActivity.this.startActivity(myIntent);

在调用MainActivity之后,我希望调用活动从堆栈中消失 - 即当用户按下MainActivity上的后退按钮时,我希望他们退出应用程序。

我查看了其他帖子并尝试在我的意图中添加各种标记(包括FLAG_ACTIVITY_CLEAR_TOP,如上所示),但它们都没有达到预期的效果。如何从堆栈中删除调用Activity,或者如果用户按下后退按钮并且从上面的代码中调用了活动,则让用户退出应用程序?

3 个答案:

答案 0 :(得分:3)

呼叫

finish();

发送意图后。

答案 1 :(得分:1)

是的,finish()会帮助你。或者你可以在manifest中使用android:noHistory标志进行第一次活动。这将调用finish()方法。

糟糕! sib Nibha已经说过......

答案 2 :(得分:0)

Intent myIntent = new Intent(
            QuickTimerActivity.this.getBaseContext(),
            MainActivity.class);
    myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    QuickTimerActivity.this.startActivity(myIntent);
    finish();

这是需要做的。