将多个标志传递给android中的intent

时间:2012-02-10 05:59:35

标签: android android-intent

我有这个活动列出了一些我提供刷新按钮的信息。我刷新它的方式(可能不是最好的方法)只是重新启动活动。为了使后台堆栈以我需要的方式工作,我需要将FLAG_ACTIVITY_CLEAR_TOP标志传递给intent,它工作正常。但是为了给出一种错觉,即信息正在刷新活动中的信息而不是完全重新启动它,我还需要添加标志FLAG_ACTIVITY_NO_ANIMATION。到目前为止,我还没有能够让这两个标志一起工作。我尝试了以下方法:

theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION+Intent.FLAG_ACTIVITY_CLEAR_TOP);
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);

theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
theIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Clear top适用于所有这些,但动画仍然存在。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:47)

使用operator |设置多个标志

theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 1 :(得分:11)

对于可能在Kotlin制作Android应用程序的人

coolIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK

答案 2 :(得分:7)

使用addFlags()以便您可以向Intent添加多个Flags。

i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 3 :(得分:3)

您可以尝试使用

overridePendingTransition(0,0);

在调用startActivity();

之后立即执行