Как убрать все экземпляры активности?
Некоторое время назад был вопрос где проблемой было то что сокет в активности возвращает несколько ответов. Была проведена исследовательская работа и по итогу получилось что у меня стартует две активности и соответственно два сокета, а потом кол-во увеличивается до 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)
}