Activity.finish(), но активность остается загруженной в память

Когда я запускаю свое приложение в отладчике, я получаю основной поток и 3 потока связующего.

Нажав кнопку, я вызываю Activity.finish(), которая, похоже, завершает действие, когда пользовательский интерфейс закрывается и возвращается на главный экран.

Однако в отладчике он по-прежнему показывает основной поток и 3 потока связующего как "(работает)".

Я озадачен, почему это происходит. Тем более что приложение вызывает Activity.onResume(), когда я запускаю его снова после выхода из приложения.

В настоящее время я переопределяю эти методы в Activity, но я вызываю соответствующие суперфункции в каждом из них:

  • OnDestroy()
  • OnPause()
  • onResume()
  • onSaveInstanceState()

Любая помощь или совет относительно этого очень ценятся!

Ответ 1

Вы не контролируете, когда ваше приложение покидает основную память, что делает ОС. Посмотрите внимательно на Activity.finish...

Вызовите это, когда ваша деятельность будет завершена и должны быть закрыты. ActivityResult распространяется до кто запустил вас через onActivityResult().

Обратите внимание, что ничего не говорится о памяти. Что касается вызова Activity.onResume, то именно то, что вы ожидаете от жизненного цикла; помните, что onResume вызывается не только после возобновления, но даже когда приложение запускается после onCreate.

В то время как не совсем то, что вы просили, я предлагаю вам прочитать эту статью о кнопках выхода, которая далее говорит что-то очень важное

[Activity.finish] в точности эквивалентен нажатию кнопки "Назад".