java - Cómo combinar banderas de intención en Kotlin
android android-intent (2)
Intenta algo como lo siguiente:
val intent = Intent(this, MapsActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
Quiero combinar dos banderas de intención como lo hacemos abajo en Android
Intent intent = new Intent(this, MapsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
Intenté hacer algo como esto pero no funcionó para mí
val intent = Intent(context, MapActivity::class.java)
intent.flags = (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
Explicación:
La operación que se aplica a las banderas es un bit o. En Java tienes el | operador para eso.
A partir de las operaciones a nivel de bits [en Kotlin], no hay caracteres especiales para ellas, sino funciones con nombre que se pueden llamar en forma de infijo.
Aquí una lista de todas las operaciones bitwise para Int y Long
-
shl(bits)- cambio firmado a la izquierda (Java<<) -
shr(bits)- turno firmado a la derecha (Java>>) -
ushr(bits): desplazamiento sin signo a la derecha (Java>>>) -
and(bits)- en modo bit y (Java''s) -
or(bits)- en modo bit o (Java|) -
xor(bits)- bitwise xor (Java''s^) -
inv()- inversión bitwise (~de Java)
Solución:
Por lo tanto, en su caso, solo necesita llamar or entre sus argumentos como tal.
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK