如何在注销android上完成多个活动
在我的应用程序中,我一个接一个地开始活动,在调用另一个之前没有完成任何活动。但当用户按下注销按钮时,我希望完成堆栈中的所有活动并启动登录活动 活动登录(完成和调用)-->活动B-->活动C--> 活动D-->注销 -->活动登录如何在注销android上完成多个活动,android,android-activity,Android,Android Activity,在我的应用程序中,我一个接一个地开始活动,在调用另一个之前没有完成任何活动。但当用户按下注销按钮时,我希望完成堆栈中的所有活动并启动登录活动 活动登录(完成和调用)-->活动B-->活动C--> 活动D-->注销 -->活动登录 若用户在登录活动上按back键,那个么在我的例子中,他将返回活动C。。。但是我想避免这种情况。您应该做的是调用Loginactivity,并清除堆栈中它上面的所有活动 Intent intent = new Intent(this, Login.class); inte
若用户在登录活动上按back键,那个么在我的例子中,他将返回活动C。。。但是我想避免这种情况。您应该做的是调用
Login
activity,并清除堆栈中它上面的所有活动
Intent intent = new Intent(this, Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这将标记它以创建新的登录活动,而不仅仅是恢复上一个登录活动。并清除上面的所有活动。(B,C,D)。我不知道这是否会有帮助,但您可以尝试在清单的声明活动(B,C,D)中添加以下标记:
android:noHistory='true'
该活动应从活动堆栈中删除并完成
(调用它的finish()方法)当用户离开它并
它在屏幕上不再可见
看一看。谢谢@yugidroid,但我实际上不想完成我以前的活动,因为它已经从服务器下载了数据,如果我完成并返回,它将再次返回到它。。。所以我只想在注销时完成之前的所有活动。。。。。不管怎样,末日之王的解决方案对我来说是有效的,当我用FLAG_ACTIVITY_CLEAR_TOP替换FLAG_ACTIVITY_CLEAR_TASK时,它就起作用了