Увеличивается количество открываемых активити, finish() не закрывает все
У меня проблема:
btLogin.setOnClickListener {
try {
if (etLogin.text.toString() != "" || etPassword.text.toString() != ""){
val repository = Repository()
val viewModelFactory = MainViewModelFactory(repository)
viewModel = ViewModelProvider(this, viewModelFactory).get(MainViewModel::class.java)
viewModel.getLogin()
viewModel.myResponse.observe(this, Observer { response ->
if (response.isSuccessful) {
etLogin.text.clear()
etPassword.text.clear()
val intent = Intent(this, MainMenuActivity::class.java)
startActivity(intent)
} else {
val myToast = Toast.makeText(this, "Неправильный логин или пароль", Toast.LENGTH_SHORT)
myToast.show()
}
})
}
else{
val myToast = Toast.makeText(this, "Не введен логин или пароль", Toast.LENGTH_SHORT)
myToast.show()
}
}
catch (e: Exception){
val myToast = Toast.makeText(this, "Exeption: \n ${e.toString()}", Toast.LENGTH_SHORT)
myToast.show()
}
}
Первый раз активити MainMenuActivity открывается один раз, и по нажатию кнопки "назад" возвращаюсь обратно. Но с каждым последующим разом количество открытых активити увеличивается на один.
Как исправить, чтобы MainMenuActivity открывалось один раз, или по нажатию на MainMenuActivity кнопки назад активити закрывалась с первого раза?
Ответы (1 шт):
Автор решения: Maxim M
→ Ссылка
удалил Observer и все заработало
viewModel.myResponse.observe(this, Observer { response ->
if (response.isSuccessful) {
etLogin.text.clear()
etPassword.text.clear()
viewModel.myResponse.removeObservers(this)
val intent = Intent(this, MainMenuActivity::class.java)
startActivity(intent)
}