android堆栈如何真正起作用?

时间:2015-06-28 18:10:17

标签: java android eclipse android-intent activity-finish

我尝试使用以下代码退出具有多项活动的应用:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();

在我的理解代码中,第一行清除了堆栈。这意味着在执行第一行之后,应用程序前面没有任何活动。为了检查我的理解,我添加了一个Toast文本,以便在两行代码后进行检查。但吐司文本出现在应用程序中,只有第二个活动被关闭。

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

1 个答案:

答案 0 :(得分:0)

使用Intent.FLAG_ACTIVITY_CLEAR_TOP的方法是在开始活动时使用它:

    Intent intent = new Intent(this, SecondActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

然后会发生的是第二个Activity在所有其他活动被销毁后启动 - 堆栈被清除。 如果要关闭所有活动,可以使用finishAffinity(),但只能从api 16及更高版本支持。