Статическое слово обычно означает, что ваши данные все еще находится на некотором определенном месте в памяти и что ячейки памяти не изменяется в то время как ваше приложение работает. Пойдем дальше, имея статическое значение, назначающее конкретное местоположение на ОЗУ устройства, и вы можете в любое время получить доступ к местоположению из любой активности, как только найденная переменная была инициирована. Таким образом, до тех пор, пока ваше приложение запускается, статическая переменная, однажды сохраненная, может никогда не быть собрана как мусор, и куча будет продолжать увеличиваться, так как продолжайте увеличивать использование статических переменных. То, что вы действительно можете сделать, это просто установить переменную null
, если вы хотите удалить ее сохраненное значение. (Не местоположение)
Что я обычно делаю, это их переработать. Это не код, который перерабатывает, но я на самом деле подразумеваю, что вместо создания большого количества статической переменной я создаю несколько (в своем собственном приложении) и постоянно меняю их значение по мере необходимости, следовательно, контролируя бесполезное расширение памяти. (Точно так же корзины, как мы делаем пластмассу или любой металл)
Да, статические переменные могут создавать утечки памяти, как его когда-то назначены, и если не установлен null
может дать определенное место в памяти навсегда, пока ваше приложение заканчивается. В случае больших сохраненных значений, таких как растровые изображения, вы можете четко наблюдать разницу между статической и нормальной переменной.
Заключение: избегайте статики столько, сколько вы можете, пока не останетесь с другим выбором, кроме использования статического электричества. Если вы используете, то продолжайте очищать сохраненную память, вы не можете удалить местоположение из ОЗУ, но можете установить значение как null
.
Примечание: Функции, используемые со статическими переменными, будут обычно собираться с мусором, например, адаптер списка, если он не является статичным. (В вашем случае у вас есть сборщик мусора).
Надеюсь, что я смогу хорошо объяснить или прокомментировать, если возникнут какие-либо вопросы или какие-либо исправления.
Cheers!
[Patterns Android Performance] (https://www.youtube.com/playlist?list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE) имеет [видео] (https://www.youtube.com/watch?v=BkbHeFHn8JY&index=6&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE) о том, как представления, статические и действия влияют на сбор мусора и память. –