В жизненном цикле активности Android есть одна вещь, которую я не понимаю. Когда действие воссоздается (например, когда я поворачиваю экран), все его экземпляры уничтожаются, поэтому я должен позаботиться о сохранении данных, которые мне нужно сохранить. Но что произойдет, если у меня есть статический класс, который заполнен данными и доступен из этого Activity. Когда действие будет уничтожено, эти данные будут потеряны или нет? Поскольку класс статичен, создавать его экземпляр не нужно.
1 ответ
Действительно, класс статических данных не будет ни воссоздан, ни уничтожен. Чего вам абсолютно следует избегать, так это объявления ваших данных во внутреннем статическом классе вашей деятельности. Это вызовет утечку памяти, потому что статический класс будет ссылаться на вашу активность, поэтому сборщик мусора не сможет очистить старую активность в памяти, что приведет к увеличению вашей кучи при каждом повороте приложения. Но если ваш статический класс находится за пределами вашей деятельности, это не должно быть проблемой!
Здесь вы найдете ценный видеоролик об управлении памятью в Android. Даже если он немного устарел, он поможет вам понять, как работает сборщик мусора в Android!
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.