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.