Показать сообщение отдельно
Старый 04.07.2012, 11:33
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 1  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
По умолчанию Полный сброс приложения, реинициализация

Привет.

Даже не знаю, как задать правильно вопрос. Понимаю, что это похоже на бред, но тем не менее...
Есть ли способ полностью закончить работу приложения, очистить память и запустить его заново в пределах одной сессии запуска?

Подробнее. Я разрабатывал плеер. В нем есть некоторые глобальные объекты, которые создаются один раз для всего приложения, типа самого плеера, панели контролов, плагинов, иконок разных интерактивных, статистика.
Сейчас возникла необходимость добавить функционал, как в ютубе, чтобы по клику на одной и ссылок все старое убивалось и подгружались заново файл с данными, иконки, плагины,.

Если просто удалить все из поля видимости и проапгрейдить нужные данные, то будут утечки памяти.
Соответственно, я вижу два выхода:
1. Сделать какой-то сброс и очистить память (но ведь System.gc и известный прием с двумя LocalConnection работает только в дебаг-версии?)
2. Перебирать все классы (их там штук 30-40) и во всех писать методы reset - но ведь это адский труд, да и не факт, что удасться все учесть.

Создать новый экземпляр приложения, кстати, не проблема. Проблема в том, как правильно удалить все старое.
Какие вы видите решения проблемы с наименьшими трудозатратами? Возможно хотя бы идеи по правильной архитектуре.

p.s. Я на 2 дня сейчас уезжаю. Отвечать, если что, пока не смогу.
__________________
сайт, vk