android删除历史定位,android – 在注销时,清除活动历史记录堆栈...

我的应用程序中的所有活动都要求用户登录才能查看.用户几乎可以从任何活动中注销.这是应用程序的要求.在任何时候,如果用户注销,我想将用户发送到登录活动.此时我希望此活动位于历史堆栈的底部,以便按“后退”按钮可将用户返回到Android的主屏幕.

我已经看到这个问题问了几个不同的地方,都回答了类似的答案(我在这里概述),但我想在这里提出收集反馈.

我已经尝试通过将其Intent标志设置为FLAG_ACTIVITY_CLEAR_TOP来打开Login活动,这似乎是在文档中概述的,但是没有实现我将Login活动放在历史堆栈底部并且阻止用户导航回以前看到的登录活动.我也尝试使用android:launchMode =“singleTop”作为清单中的Login活动,但这也没有实现我的目标(并且似乎无论如何都没有效果).

我相信我需要清除历史堆栈,或者完成之前打开的所有活动.

一个选项是让每个活动的onCreate检查登录状态,如果没有登录则完成().我不喜欢这个选项,因为后退按钮仍可供使用,当活动靠近时自动导航.

下一个选项是维护一个LinkedList,引用所有可以从任何地方静态访问的打开活动(可能使用弱引用).注销时,我将访问此列表并迭代所有先前打开的活动,在每个活动上调用finish().我很快就会开始实施这种方法.

但是,我宁愿使用一些Intent标志技巧来实现这一目标.我很高兴发现我可以满足我的应用程序的要求,而不必使用我上面概述的两种方法中的任何一种.

有没有办法通过使用Intent或manifest设置来实现这一点,或者是我的第二个选择,维护已打开活动的LinkedList是最佳选择吗?或者我还有另一种选择吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值