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

问题描述:

我有一个活动,它是不是我的应用程序的主要活动,但它可以通过快捷方式启动。当从快捷键直接启动它接受那么一些用户输入使用下面的代码启动在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,或者如果用户按下后退按钮并从上面的代码调用了该活动,则可以让用户退出应用程序?

+0

http://*.com/questions/11836080/how-does-androidnohistory-true-work – 2014-09-18 16:59:36

呼叫

finish(); 

发送意图之后。

+0

谢谢 - 我不知道解决方案会如此简单。它效果很好。 – 2014-09-20 16:42:59

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

这是需要做的。

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

哎呀! Sry Nibha已经说过了...