【问题标题】:Clearing Activity Stack清除活动堆栈
【发布时间】:2011-09-19 15:23:00
【问题描述】:

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

【问题讨论】:

    标签: java android android-activity stack


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      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配合使用效果很好:如果用来启动一个任务的根Activity,它将把该任务当前正在运行的任何实例带到前台,然后将其清空到它的前台。 root 状态。这特别有用,例如,在从通知管理器启动 Activity 时。"

      【讨论】:

      • 我试过“i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);”当我点击后退按钮时,它仍然会回到上一个活动
      • user intent.setFlags(FLAG_ACTIVITY_CLEAR_TOP | FLAG_ACTIVITY_NEW_TASK) 为了清除之前的所有活动,另外在调用startActivity(intent)之后,调用finish()和你想隐藏的login\mainActivity状态改变了
      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 2018-12-01
      • 2012-04-20
      相关资源
      最近更新 更多