Intent标记到Login页面重定向,杀死以前的活动

时间:2014-08-19 04:16:27

标签: android android-intent

基本上我有一个Service,它在某些时候会与网络同步,以检查令牌是否仍然有效。如果不是,它应该重定向到登录屏幕(来自服务),如果用户按下后退按钮,则不应显示上一个活动,而是退出应用程序。

我不是在问如何破解onBackPressed,我已经知道该怎么做了。我问的是如何使用意图标志来实现这一点。

到目前为止,我已尝试过以下内容:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);

使用FLAG_ACTIVITY_NEW_TASK是强制性的,因为我从服务中调用startActivity()(或至少抛出异常告诉我),并使用FLAG_ACTIVITY_CLEAR_TOP因为它应该删除所有堆栈中的先前活动,只留下新的活动。

问题是如果我按回去,我仍然可以转到之前的Activity,这让我觉得两个标志的组合清除新任务中的活动,而不是前一个

我可能错了,但它不起作用。任何帮助将不胜感激,谢谢

1 个答案:

答案 0 :(得分:0)

您需要在Intent FLAG_ACTIVITY_NO_HISTORY添加一个标记,以使您的活动成为应用程序新任务的开始

来自documentation

If set, this activity will become the start of a new task on this history stack.

<强>样品:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(FLAG_ACTIVITY_NO_HISTORY);

确保使用addFlags在意图中添加2个标记