我尝试使用以下代码退出具有多项活动的应用:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
在我的理解代码中,第一行清除了堆栈。这意味着在执行第一行之后,应用程序前面没有任何活动。为了检查我的理解,我添加了一个Toast文本,以便在两行代码后进行检查。但吐司文本出现在应用程序中,只有第二个活动被关闭。
我想了解上述代码的工作原理。
答案 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及更高版本支持。