`
public void SignOut(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
`我有一个android应用程序。活动就像-> A-> B-> C-> D-> E。活动A具有登录页面。因此,在转到下一个活动(即B)时,我没有完成活动A。堆栈的增长如下:A,B,C,D,然后活动D完成,E开始。在活动E中,我有一个退出按钮。 到目前为止,我的筹码是:A,B,C,E。按下退出键后,E弹出。我想在此时清除活动堆栈,并要开始我的第一个活动,即要求登录的A。我做不到。退出后,我的堆栈变为A,B,C,A。我希望堆栈仅是A。请帮忙。提前致谢。
答案 0 :(得分:1)
我已经解决了这个问题。
在上面的代码中,在我的主要活动类中的onRestart()函数中,我添加了代码:
getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
这样可以确保无论何时调用此活动,就像我的情况一样,都是从上一个活动调用的。此时,如果下一个活动完全覆盖了它,则它要么已经处于onPaused()状态,然后处于onStop()状态,然后它将再次重新启动。此时,清除活动A的后堆栈(即A之上的所有活动),如果堆栈中有任何内容可以重新开始。