Reputation: 575
I have this activity that lists some information which I provide a refresh button for. The way I'm refreshing it (probably not the best way by any means) is just launching the activity all over again. To make the back stack work the way I need it to I need to pass in the FLAG_ACTIVITY_CLEAR_TOP
flag to the intent and it works fine. But to give the illusion that the information is refreshing the information within the activity and not completely relaunching it, I also need to add the flag FLAG_ACTIVITY_NO_ANIMATION
. So far, I haven't been able to get these two flags to work together. I've tried the following methods:
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 works correctly for all of them but the animation is still there. Any help would be greatly appreciated.
Upvotes: 28
Views: 33346
Reputation: 3725
For folks that may be making an Android app in Kotlin
coolIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
Upvotes: 43
Reputation: 5869
Use addFlags()
so that you can add multiple number of Flags to Intent.
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Upvotes: 10
Reputation: 95618
You might try using
overridePendingTransition(0,0);
immediately after calling startActivity();
Upvotes: 3
Reputation: 29199
Use operator | to set multiple flags
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);
Upvotes: 61