Size: a a a

Android Developers

2020 June 12

n

neikist in Android Developers
Ravil
Смотря какие. Пока самый корень может существовать долго, а внутри него может крутится уже совсем другое. И эти объекты, которые содержать внутри себя ссылки друг  на друга могут быть уже не нужны, но существуют пока есть корень, хотя оно могло быть убито уже, потому что ни используется ни где после.
Если внутри него крутится уже другое - то и доступны из корня они не будут. Потому что ни на один из объектов ссылки мы не держим. А если мы их держим в другом потоке - значит они доступны из корня того, другого потока, и если мы там ссылку удалим - сборщик точно так же их соберет без всяких проблем. Ничем от прямой ссылки циклические тут не отличаются. Точно так же можно передать прямую ссылку, на активити например, в другой поток и точно такую же утечку мы получим.
источник

AK

Anton Kulykov in Android Developers
Anton Kulykov
Об этом и речь, от чего можно было избавиться избавились, но есть например радио, работает media player, он дестрой не вызывался, приложение выгружено, release вы никак не вызовите, но так как приложение выгружено media player тоже
@ravikwow так вы и не ответили на вопрос, речь шла именно про onDestroy/onStop который не вызывался при выгрузке из памяти
источник

R

Ravil in Android Developers
Anton Kulykov
@ravikwow так вы и не ответили на вопрос, речь шла именно про onDestroy/onStop который не вызывался при выгрузке из памяти
Ответил, избавляюсь от всего раньше.
источник

AK

Anton Kulykov in Android Developers
когда раньше, описан кейс
источник

R

Ravil in Android Developers
Anton Kulykov
когда раньше, описан кейс
в onSaveInstanceState
источник

AK

Anton Kulykov in Android Developers
и в какой же момент при выгрузке он вызовется?
источник

AK

Anton Kulykov in Android Developers
делаю вывод, что вы абсолютно вы не знакомы с жизненным циклом андроид
источник

R

Ravil in Android Developers
Anton Kulykov
и в какой же момент при выгрузке он вызовется?
Вы не знаете когда вызывается onSaveInstanceState?
источник

AK

Anton Kulykov in Android Developers
Ravil
Вы не знаете когда вызывается onSaveInstanceState?
именно потому что знаю, задаю вам наводящие вопросы, вы же в ответ пишите откровенную глупость
источник

R

Ravil in Android Developers
Anton Kulykov
именно потому что знаю, задаю вам наводящие вопросы, вы же в ответ пишите откровенную глупость
Чем? То что избавляюсь от всего не в onDestroy?
источник

AK

Anton Kulykov in Android Developers
вы не понимаете что onSaveInstanceState тоже не будет вызван?
источник

QH

Quantum Harmonizer in Android Developers
Ravil
Смотря какие. Пока самый корень может существовать долго, а внутри него может крутится уже совсем другое. И эти объекты, которые содержать внутри себя ссылки друг  на друга могут быть уже не нужны, но существуют пока есть корень, хотя оно могло быть убито уже, потому что ни используется ни где после.
«но существуют пока есть корень, хотя оно могло быть убито уже»
ну сборщик мусора так и работает. Есть корень — оно живёт. Нет корня — собирает. Не надо сюда циклические ссылки приплетать.
источник

R

Ravil in Android Developers
Quantum Harmonizer
«но существуют пока есть корень, хотя оно могло быть убито уже»
ну сборщик мусора так и работает. Есть корень — оно живёт. Нет корня — собирает. Не надо сюда циклические ссылки приплетать.
если оно не используется ниже, то оно будет уничтожено раньше
источник

n

neikist in Android Developers
Ладно, сдаюсь пытаться убедить. Пойду лучше работу работать
источник

QH

Quantum Harmonizer in Android Developers
Ravil
если оно не используется ниже, то оно будет уничтожено раньше
знать бы, что здесь вообще имеется в виду и к чему это
источник

R

Ravil in Android Developers
Anton Kulykov
вы не понимаете что onSaveInstanceState тоже не будет вызван?
Оно не будет вызвано только если где то вызвали finish, когда активити находится в фореграунд
источник

AK

Anton Kulykov in Android Developers
Ravil
Оно не будет вызвано только если где то вызвали finish, когда активити находится в фореграунд
вы явно не читали на что начали отвечать
источник

AK

Anton Kulykov in Android Developers
в самом начале было сказано что при полной выгрузке никакие методы не дернутся
источник

R

Ravil in Android Developers
Anton Kulykov
в самом начале было сказано что при полной выгрузке никакие методы не дернутся
такое может быть, только если вы убили через adb или система убила foreground activity
источник

AK

Anton Kulykov in Android Developers
Anton Kulykov
если приложение полностью выгружается из памяти системой либо через настройки остановить на onDestroy не попадем, поправьте если путаю
.
источник