2012-10-20 18 views
3

在我的应用程序中,我一个接一个地开始活动,在调用另一个活动之前没有完成任何活动。但是,当用户按下注销按钮,然后我想完成堆栈中的所有活动并开始登录活动。如何在注销完成多个活动android

活动登录(完成&呼叫) - >活动B - >活动Ç - > 活动d - >注销 - >胡亚蓉登录。

如果用户在登录活动中按下返回键,然后他返回到活动C在我的情况...但我想避免这种情况。

回答

7

你应该做的是调用Login活动,并清除堆栈中的所有活动。

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)。

+0

谢谢哥们它的工作 – kadhirvel

+0

对我来说,它的工作原理,当我通过FLAG_ACTIVITY_CLEAR_TASK更换FLAG_ACTIVITY_CLEAR_TOP –

0

我不知道这是否会帮助,但你可以尝试添加到您的清单申报的活动(B,C,d)以下标签:

android:noHistory='true'

的活动应该从活动组中删除,并完成(称为它的光洁度()方法) 当用户从中导航离开和 它不再可见屏幕

看看here

+0

感谢@yugidroid但其实我不想结束我的以前的活动bcoz它已经从服务器下载数据,如果我的光洁度,回来就会给它再次...所以我想完成所有以前的活动只有注销.....无论如何Doomskinght的解决方案为我工作 – kadhirvel