При отладке приложения в Android Studio, если у меня есть метод onDestroy в основном действии, а затем нажмите кнопку «Назад», вызывается onDestroy. Тем не менее, Android Studio по-прежнему показывает отладку. Неясно, является ли это только показ отладочного соединения между Android Studio и устройством. Если я перейду в приложение> Настройки и закрою приложение, сеанс отладки будет завершен. Это заставляет меня казаться, что мое приложение все еще работает, несмотря на то, что onDestroy называется. Но я читал в другом месте, что Android будет поддерживать приложение в памяти по соображениям производительности. Если пользователь хочет перезапустить приложение сразу, а приложение не было собрано мусором, по-видимому, более эффективно просто перезапустить приложение, которое было ранее уничтожено.Как узнать, прекращено ли приложение Android
Но это ставит вопрос о том, действительно ли вы можете сказать, действительно ли ваше приложение было прекращено, когда вы нажимаете кнопку «Назад» в основном действии. Если вызывается onDestroy, действительно ли это означает, что оно было прекращено? Я понимаю, что вы могли бы ссылаться на какой-то объект в своем коде, который не будет выпущен, но onDestroy все равно может быть вызван, но приложение остается неработающим из-за ссылочного объекта, который мешает ему собирать мусор.
Даже если вы пишете приложение с голыми костями, которое ничего не показывает, но показывает пустое действие и нажимает кнопку «Назад», куча все еще показывает ссылки. Поэтому я не понимаю, как вы можете с уверенностью сказать, что ваше приложение было прекращено.
Извините, но я не согласен с этим. Android отлично знает, работает ли ваше приложение. Это очень очевидно, когда вы переходите в App Settings, и это позволяет вам убить приложение. Вопрос в том, доступна ли эта информация для приложений, которым необходимо допросить присутствие приложения или его отсутствие. Вам также не хватает смысла.Дело в том, чтобы сказать, живое ли ваше приложение из-за какой-то неизданной ссылки или потому, что Android поддерживает его по соображениям производительности. – AndroidDev
@AndroidDev: «Вопрос в том, доступна ли эта информация для приложений, которые должны опросить присутствие приложения или их отсутствие» - по определению, если ваш код запущен, у вас есть процесс. «Дело в том, чтобы сказать, живое ли ваше приложение из-за какой-то неизданной ссылки» - такой концепции нет. Теперь вы объединяете сборку мусора в процессе с управлением процессами на уровне ОС. – CommonsWare