2011-06-21 68 views
1

我在清除我的应用程序的活动堆栈时遇到问题。在我的应用程序的开始,我让用户登录并给他们一个会话ID。登录后,他们可以继续使用该应用程序。但是,如果会话过期,我想将它们重定向到登录活动并清除活动历史记录,以便他们无法访问该应用程序。我看着Android API和意图标志FLAG_ACTIVITY_CLEAR_TASK似乎是我想要但它只是包括在API级别11,并没有手机有新的操作系统呢。有没有人有解决这个问题的方法。谢谢。清除活动堆栈

回答

2

我找到了我的答案here。事实证明,我必须广播一个意图,告诉所有的活动,以调用方法finish()

1

FLAG_ACTIVITY_CLEAR_TOP该文档描述了你想,如果你结合FLAG_ACTIVITY_NEW_TASK

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

使用情况“此次发布的模式,也可以使用,效果良好结合FLAG_ACTIVITY_NEW_TASK:如果用来启动一个任务的根活动,它将任何当前正在运行的任务的实例带到前台,然后将其清除到根状态,这是特别有用的,例如,从通知管理器启动活动时。“

+1

我试过“i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);”当我点击后退按钮时,它仍然会返回到prev活动 –

+0

user intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_NEW_TASK)以清除所有先前的活动,此外在调用startActivity(intent)之后,调用finish()和login \ stateActivity,你想在状态改变时隐藏 – galvan