lancex
lancex

Reputation: 575

Passing multiple flags to an intent in android

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

Answers (4)

SARose
SARose

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

TNR
TNR

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

David Wasser
David Wasser

Reputation: 95618

You might try using

overridePendingTransition(0,0);

immediately after calling startActivity();

Upvotes: 3

jeet
jeet

Reputation: 29199

Use operator | to set multiple flags

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

Upvotes: 61

Related Questions