Cómo combinar banderas de intención en Kotlin

Quiero combinar dos banderas de intención como lo hacemos a continuación 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 a nivel de bit o. En Java tienes el | operador para eso.

    A partir de operaciones bit a bit [en Kotlin], no hay caracteres especiales para ellos, sino simplemente funciones nombradas que se pueden llamar en forma infija.

    Fuente

    Aquí una list de todas las operaciones bit a bit para Int y Long

    • shl(bits) – shift firmado a la izquierda ( << de Java)
    • shr(bits) : desplazamiento a la derecha (Java >> )
    • ushr(bits) – shift sin signo a la derecha (Java >>> )
    • and(bits) – bitwise y (Java & )
    • or(bits) – bitwise o (Java's |
    • xor(bits) – bitwise xor (Java ^ )
    • inv() – inversión en modo bit ( ~ de Java)

    Solución:

    Entonces, en su caso, solo necesita llamar or entre sus arguments como tal.

     intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK 

    Pruebe algo como lo siguiente:

     val intent = Intent(this, MapsActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK