Issue
I want to combine two intent flags as we do below 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)
Solution
Explanation:
The operation that is applied to the flags is a bitwise or. In Java you have the |
operator for that.
As of bitwise operations [in Kotlin], there're no special characters for them, but just named functions that can be called in infix form.
Here a list of all bitwise operations for Int
and Long
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.
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
Answered By - Willi Mentzel
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.