【问题标题】:Call an activity and remove calling activity from stack?调用一个活动并从堆栈中删除调用活动?
【发布时间】:2014-09-18 16:47:04
【问题描述】:

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

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

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

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

【问题讨论】:

标签: android android-intent stack


【解决方案1】:

打电话

finish();

在发送意图之后。

【讨论】:

  • 谢谢 - 我不知道解决方案会如此简单。效果很好。
【解决方案2】:

是的,finish() 将帮助你。或者你可以使用 android:noHistory 标志作为清单中的第一个活动。这将调用 finish() 方法。

哎呀! sry Nibha 已经说过了……

【讨论】:

    【解决方案3】:
    Intent myIntent = new Intent(
                QuickTimerActivity.this.getBaseContext(),
                MainActivity.class);
        myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        QuickTimerActivity.this.startActivity(myIntent);
        finish();
    

    这是需要做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 2018-12-01
      • 2018-08-29
      • 1970-01-01
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多