Java 安卓堆栈究竟是如何工作的?

Java 安卓堆栈究竟是如何工作的?,java,android,eclipse,android-intent,activity-finish,Java,Android,Eclipse,Android Intent,Activity Finish,我已尝试使用以下代码退出具有多个活动的应用程序: intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); finish(); 根据我的理解,在这段代码中,第一行清除堆栈。这意味着在执行第一行之后,应用程序前面没有任何活动。为了检查我的理解,我在两行代码后都添加了一个Toast文本来检查。但祝酒词出现在应用程序中,只有第二项活动结束 我想了解上述代码的工作原理 使用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP的方式是在启动活动

我已尝试使用以下代码退出具有多个活动的应用程序:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
根据我的理解,在这段代码中,第一行清除堆栈。这意味着在执行第一行之后,应用程序前面没有任何活动。为了检查我的理解,我在两行代码后都添加了一个Toast文本来检查。但祝酒词出现在应用程序中,只有第二项活动结束


我想了解上述代码的工作原理

使用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP的方式是在启动活动时使用它:

    Intent intent = new Intent(this, SecondActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
然后发生的是,第二个活动在所有其他活动被销毁后启动—堆栈被清除。 如果要关闭所有活动,可以使用finishafinity(),但它仅受api 16及更高版本的支持