我有这个活动列出了一些我提供刷新按钮的信息。我刷新它的方式(可能不是最好的方法)只是重新启动活动。为了使后台堆栈以我需要的方式工作,我需要将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适用于所有这些,但动画仍然存在。任何帮助将不胜感激。
答案 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();
之后立即执行