Как убрать все экземпляры активности?

Некоторое время назад был вопрос где проблемой было то что сокет в активности возвращает несколько ответов. Была проведена исследовательская работа и по итогу получилось что у меня стартует две активности и соответственно два сокета, а потом кол-во увеличивается до 2-3-4. Была попытка решить вопрос добавлением строки:

android:noHistory = "true"
android:launchMode="singleInstance"

что с виду решало проблему, но тогда при использовании например обычного интента у меня не получается перейти на данную активность. Пробовал такие способы:

intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK

но тоже не принесло желаемого результата. Каким образом можно очистить полностью стек и безболезненно потом использовать эту активность снова?

Суть логики такая - имеется активность 1 и активность 2, в 1 активности у меня есть фрагмент из которого я перехожу в активность 2:

val intent = Intent(activity, ChatScreen::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
intent.flags = Intent.FLAG_ACTIVITY_NO_ANIMATION
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
intent.putExtra("mc_part", type)
activity!!.startActivity(intent)
activity!!.overridePendingTransition(0,0)
activity!!.finishAndRemoveTask()

И возврат из 2 в 1 активность выполняется при помощи данного куска кода:

fun moveHome() {
        closeWsConnection()
        val intent = Intent(this, HomeScreen::class.java)
        intent.putExtra("id", 0)
        intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
        intent.flags = Intent.FLAG_ACTIVITY_NO_ANIMATION
        intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
        startActivity(intent)
        overridePendingTransition(0, 0)
    }

Ответы (0 шт):