Восстанавливает ли RoboGuice ранее созданные объекты при вызове onCreate () - PullRequest
3 голосов
/ 02 декабря 2011

Моя активность вводится с рядом объектов, которые инициализируются прежде чем onCreate вызывается в первый раз. Когда моя активность заканчивается, вызывая метод finish, она проходит через onDestroy, прежде чем вернуться в главное окно «Рабочий стол ОС». Затем я снова вызываю свое приложение, и снова вызывается onCreate. На этот раз, хотя мой взгляд остается таким же, как когда финиш был изначально называется выше. Поэтому мне интересно, если RoboGuice повторно создает экземпляр введенного опять объекты? Если нет, есть ли способ сделать это? Спасибо.

Ответы [ 2 ]

1 голос
/ 18 июля 2013

Вы говорите, что они не были восстановлены тогда?

когда onCreate () вызывается ex. при изменении ориентации телефона каждый объект вводится еще раз. Но если одним из внедренных объектов является Singleton, будет введен тот же экземпляр объекта. «Синглтон» работает в рамках всего приложения, поэтому жизненный цикл действия не влияет на объекты signleton.

0 голосов
/ 01 февраля 2012

Взгляните на жизненный цикл активности Android документы.

Если onCreate вызывается из Android, то создается новый экземпляр вашей активности, и создаются экземпляры всех не-синглтонских компонентов, а все компоненты вводятся с помощью roboguice.

Если вам нужен только один экземпляр компонента, вы можете сделать его одиночным. Просто будьте осторожны с использованием памяти синглетами, потому что они будут жить в течение всего процесса подачи заявки. Поэтому, даже если действие было уничтожено, но процесс вашего приложения все еще выполняется, эти синглтоны будут занимать память.

Roboguice - это просто обёртка вокруг обмана. Если вы заинтересованы в поиске других вариантов получения экземпляров классов, взгляните на Привязки , Области действия и Поставщики в Обличье .

...