我需要清除活动堆栈。除了SDK 8中的当前活动之外的所有活动。我希望在从任何活动退出后我可以访问登录活动,所有之前的活动将从活动堆栈中删除。 我试过这个解决方案
Intent i = new Intent(BaseActivity.this, LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
但它不起作用。我不能使用finish(),因为用户可以从任何活动注销。
您的帮助非常值得注意。
答案 0 :(得分:0)
只需在自己的Intent. FLAG_ACTIVITY_CLEAR_TASK
答案 1 :(得分:0)
使用此 通常,当我们启动新活动时,它之前的活动将被保存在一堆活动中。因此,如果您想要杀死所有以前的活动,请按照这些方法
Intent i = new Intent(OldActivity.this, NewActivity.class); // set the new task and clear flags i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) startActivity(i);
答案 2 :(得分:-1)
我有两个美丽的问题解决方案。
解决方案1:
一种是使用广播接收器。我可以向我的所有活动和onRecive()广播消息我可以完成所有活动。正如Link所说的那样。
解决方案2(更轻松的方式):
其次是通过在ShearedPrefrences或Application Activity中管理标志。在启动应用程序时(在启动画面上)设置flag = false; OnLogout click事件,只需将标志设置为true,并在每个活动的OnResume()中检查flag是否为true,然后调用finish()。
它就像一个魅力:)请求如果你不能回答,至少不要滥用这个问题。