onDestroy
не означает, что объект действия был удален, это просто означает, что само действие (как концепция Android) было уничтожено.Это не имеет никакого отношения к реальному объекту Activity.Внутри ОС может принять решение утилизировать ее, особенно когда она немедленно воссоздается из-за изменения конфигурации (например, из-за изменения ориентации с книжной на альбомную).
Даже если это был сбор мусора (что может произойти намного позжеНа Дестрой, в тот момент, когда система фактически должна была выполнять сборку мусора, потому что ей требовалась память), нет гарантии, что finalize
будет вызван.Это даже в документации:
"Note that the VM does guarantee that finalize() is called at most
once for any object, but it doesn't guarantee when (if at all)
finalize() will be called.".
Как правило, вы никогда не должны использовать finalize
, если вам действительно не нужно.Это не так предсказуемо, как деструктор в C ++.Если вам нужно выполнить очистку в своей деятельности, сделайте это в onPause
или onDestroy
или любом другом хуке.