Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
|
Полный сброс приложения, реинициализация
Привет.
Даже не знаю, как задать правильно вопрос. Понимаю, что это похоже на бред, но тем не менее...
Есть ли способ полностью закончить работу приложения, очистить память и запустить его заново в пределах одной сессии запуска?
Подробнее. Я разрабатывал плеер. В нем есть некоторые глобальные объекты, которые создаются один раз для всего приложения, типа самого плеера, панели контролов, плагинов, иконок разных интерактивных, статистика.
Сейчас возникла необходимость добавить функционал, как в ютубе, чтобы по клику на одной и ссылок все старое убивалось и подгружались заново файл с данными, иконки, плагины,.
Если просто удалить все из поля видимости и проапгрейдить нужные данные, то будут утечки памяти.
Соответственно, я вижу два выхода:
1. Сделать какой-то сброс и очистить память (но ведь System.gc и известный прием с двумя LocalConnection работает только в дебаг-версии?)
2. Перебирать все классы (их там штук 30-40) и во всех писать методы reset - но ведь это адский труд, да и не факт, что удасться все учесть.
Создать новый экземпляр приложения, кстати, не проблема. Проблема в том, как правильно удалить все старое.
Какие вы видите решения проблемы с наименьшими трудозатратами? Возможно хотя бы идеи по правильной архитектуре.
p.s. Я на 2 дня сейчас уезжаю. Отвечать, если что, пока не смогу.
|