Объедините флаги и четкую обратную трассировку в котлине

Я использую Kotlin для разработки приложений для Android. В Android мы использовали addFlags и setFlags для установки флагов и очистки действий обратной трассировки, разделенных символом "|". Как этого добиться в Котлине? В настоящее время я использую код ниже в Kotlin:

startActivity(Intent(context, MyActivity::class.java)
            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK))

Но это не работает. Я также попробовал addFlags, он также не работает. Что должно быть сделано в этом сценарии?

1 ответ

Используйте это так

val intent = Intent(context, MyActivity::class.java)                
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK

Используйте это с намерением, чтобы очистить действия обратной трассировки

var intent = Intent(this, [Your_activity]:class.java)
    intent.flags =  Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
    startActivity(intent)
 val intent = Intent(activity!!, MainActivity::class.java)
    startActivity(intent)
    activity!!.finishAffinity()

Используйте это с намерением, чтобы очистить действия обратной трассировки

Джава

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

Котлин

 var intent = Intent(this, [Your_activity]:class.java)
        intent.flags =  Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
        startActivity(intent)
val intent = Intent(this, MyActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)

добавить в манифест android:launchMode="singleTask

Другие вопросы по тегам