当有5个活动之间如何注销并重新开启第一个活动?

时间:2013-12-09 21:01:25

标签: android

我需要为Android应用添加一些安全机制,如果用户没有点击超过两分钟,我需要注销用户。我的问题是,如果用户已登录并通过例如5个活动(没有人可以调用finish(),所有都在堆栈上)如何注销并返回第一个活动?

2 个答案:

答案 0 :(得分:1)

尝试使用

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

另外,请查看此thread

答案 1 :(得分:0)

我的想法如下。

您可以通过startActivityForResult开始每项活动,然后在onResume的每项活动中启动计时器。如果超过2分钟,则使用setResult来指示父活动的超时。在父活动中,您使用onActivityResult来处理传入的消息(如果有的话),如果它等于注销(插入您定义的任何常量),那么对于发送回原始Main活动的那些活动,您也会这样做。

如果过了2分钟,你必须在某个时候打电话给finish(),否则你无法避免。或者显示用户已登出并进行交互的对话框。