基本上我有一个Service
,它在某些时候会与网络同步,以检查令牌是否仍然有效。如果不是,它应该重定向到登录屏幕(来自服务),如果用户按下后退按钮,则不应显示上一个活动,而是退出应用程序。
我不是在问如何破解onBackPressed
,我已经知道该怎么做了。我问的是如何使用意图标志来实现这一点。
到目前为止,我已尝试过以下内容:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
使用FLAG_ACTIVITY_NEW_TASK
是强制性的,因为我从服务中调用startActivity()
(或至少抛出异常告诉我),并使用FLAG_ACTIVITY_CLEAR_TOP
因为它应该删除所有堆栈中的先前活动,只留下新的活动。
问题是如果我按回去,我仍然可以转到之前的Activity
,这让我觉得两个标志的组合清除新任务中的活动,而不是前一个
我可能错了,但它不起作用。任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
您需要在Intent
FLAG_ACTIVITY_NO_HISTORY
添加一个标记,以使您的活动成为应用程序新任务的开始
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个标记