Activity.finish(), но активность остается загруженной в память
Когда я запускаю свое приложение в отладчике, я получаю основной поток и 3 потока связующего.
Нажав кнопку, я вызываю Activity.finish(), которая, похоже, завершает действие, когда пользовательский интерфейс закрывается и возвращается на главный экран.
Однако в отладчике он по-прежнему показывает основной поток и 3 потока связующего как "(работает)".
Я озадачен, почему это происходит. Тем более что приложение вызывает Activity.onResume(), когда я запускаю его снова после выхода из приложения.
В настоящее время я переопределяю эти методы в Activity, но я вызываю соответствующие суперфункции в каждом из них:
- OnDestroy()
- OnPause()
- onResume()
- onSaveInstanceState()
Любая помощь или совет относительно этого очень ценятся!
Ответы
Ответ 1
Вы не контролируете, когда ваше приложение покидает основную память, что делает ОС. Посмотрите внимательно на Activity.finish...
Вызовите это, когда ваша деятельность будет завершена и должны быть закрыты. ActivityResult распространяется до кто запустил вас через onActivityResult().
Обратите внимание, что ничего не говорится о памяти. Что касается вызова Activity.onResume, то именно то, что вы ожидаете от жизненного цикла; помните, что onResume вызывается не только после возобновления, но даже когда приложение запускается после onCreate.
В то время как не совсем то, что вы просили, я предлагаю вам прочитать эту статью о кнопках выхода, которая далее говорит что-то очень важное
[Activity.finish] в точности эквивалентен нажатию кнопки "Назад".