Androidで以下のように2つのインテントフラグを組み合わせたい
Intent intent = new Intent(this, MapsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK);
このようなことをしようとしましたが、うまくいきませんでした
val intent = Intent(context, MapActivity::class.Java)
intent.flags = (Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
説明:
フラグに適用される操作はビット単位のORです。 Javaには、そのための_|
_演算子があります。
[Kotlinの]ビット演算の場合、それらには特別な文字はありませんが、中置形式で呼び出すことができる名前付き関数だけです。
Int
およびLong
のすべてのビット演算のリスト
shl(bits)
–符号付き左シフト(Javaの_<<
_)shr(bits)
–符号付き右シフト(Javaの_>>
_)ushr(bits)
–符号なし右シフト(Javaの_>>>
_)and(bits)
–ビット単位および(Javaの_&
_)or(bits)
–ビット単位または(Javaの_|
_)xor(bits)
–ビット単位のxor(Javaの_^
_)inv()
–ビットごとの反転(Javaの_~
_)解決策:
したがって、あなたの場合は、そのように引数の間にor
を呼び出すだけです。
_intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
_
次のようなものを試してください:
val intent = Intent(this, MapsActivity::class.Java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK