I want to combine two intent flags as we do bellow in android
Intent intent = new Intent(this, MapsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
I tried doing something like this but it didn't work for me
val intent = Intent(context, MapActivity::class.java)
intent.flags = (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
Try something like following:
Explanation:
The operation that is applied to the flags is a bitwise or. In Java you have the
|
operator for that.Source
Here a list of all bitwise operations for
Int
andLong
shl(bits)
– signed shift left (Java's<<
)shr(bits)
– signed shift right (Java's>>
)ushr(bits)
– unsigned shift right (Java's>>>
)and(bits)
– bitwise and (Java's&
)or(bits)
– bitwise or (Java's|
)xor(bits)
– bitwise xor (Java's^
)inv()
– bitwise inversion (Java's~
)Solution:
So, in your case you only need to call
or
in between your arguments like so.Advanced, Reuseable Kotlin:
In Kotlin
or
is the replacement for the Java bitwise or|
.If you plan to use your combination regularly, create an Intent extension function
You can then directly call this function before starting the intent
If you need the option to add additional flags in other situations, add an optional param to the extension function.